Apache CORS OPTIONS 请求状态 501 错误

Posted

技术标签:

【中文标题】Apache CORS OPTIONS 请求状态 501 错误【英文标题】:Apache CORS OPTIONS request status 501 error 【发布时间】:2018-02-11 12:29:49 【问题描述】:

Angular 2 http post 未设置内容类型

我试图在 http.post 上设置标题但没有运气。

import  Injectable  from '@angular/core';
import  Http, Headers, RequestOptions, Response  from '@angular/http';

import  User  from '../_models/index';

@Injectable()
export class UserService 
constructor(private http: Http)  

create(username: string, firstname: string, lastname: string, email: string, password: string) 
    let headers = new Headers(
        'Accept' : 'application/json',
        'Content-Type': 'application/json'
    );
    let options = new RequestOptions( headers: headers, method: 'post' );

    return this.http.post(
        'http://127.0.0.1:8080/api/users/register',
        JSON.stringify(username, firstname, lastname, email, password),
        options
        // this.jwt()
    ).map(
        (response: Response) => response.json()
    );

我已经在我的 apache 配置中设置了标题

    <Directory /var/www/stockwatch_api>
            Header set Access-Control-Allow-Origin "*"
            Header set Access-Control-Allow-Headers "Content-Type"
            Header set Access-Control-Allow-Methods "POST, PUT, DELETE, GET, HEAD"

我还在我的 cakephp api 应用程序中设置了相同的标题。

我收到了这样的回复:

状态码:501 未实现

【问题讨论】:

问题出在后端。它拒绝CORS pre-flight OPTIONS request。尝试将 OPTIONS 添加到允许的方法列表中。 谢谢 我试过了,没用。 enable cors in .htaccess的可能重复 【参考方案1】:

尝试使用headers.append()

let headers = new Headers();
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/json');

【讨论】:

您是否遇到任何错误?你在 teamviewer 中有空吗??

以上是关于Apache CORS OPTIONS 请求状态 501 错误的主要内容,如果未能解决你的问题,请参考以下文章

Apache 如何以及为啥拦截对 Rails 的一些 CORS 请求?

CORS:在成功的 OPTIONS 请求后,Firefox 不发送 POST 请求......适用于 Chrome 和 IE

HTTP OPTIONS 飞行前请求加载已取消,Chrome 中处于待处理状态

如何配置 Apache 让 PHP 处理 OPTIONS HTTP 请求? [关闭]

Preflight(options) 请求的正确成功状态代码是啥? [复制]

Safari不会在Apache上的Vue.js应用程序中加载预检CORS身份验证请求(XHR)