Javascript CORS XMLHttpRequest不';我不允许设置标题

Javascript CORS XMLHttpRequest不';我不允许设置标题,javascript,php,ajax,angularjs,cors,Javascript,Php,Ajax,Angularjs,Cors,因此,我正在执行一个跨源请求(已经尝试通过AngularJS、AJAX和XMLHttpRequest),它们都不允许我设置头。我可以发送请求后,得到。。。无论有无数据,只要我添加标题,它都可以正常工作: xhr.setRequestHeader("user","someUser"); 还是AJAX headers: {"user":"someUser"} 我得到一个错误: 405 (Method Not Allowed) XMLHttpRequest cannot load http://t

因此,我正在执行一个跨源请求(已经尝试通过AngularJS、AJAX和XMLHttpRequest),它们都不允许我设置头。我可以发送请求后,得到。。。无论有无数据,只要我添加标题,它都可以正常工作:

xhr.setRequestHeader("user","someUser");
还是AJAX

headers: {"user":"someUser"}
我得到一个错误:

405 (Method Not Allowed)
XMLHttpRequest cannot load http://testsite.com Invalid HTTP status code 405
从事物的后端,我允许所有起源:

header("Access-Control-Allow-Origin: *");
不确定问题会是什么

var myApp = angular.module('myApp', [
    'myAppApiService']);

myApp.config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
]);

尝试添加此配置…

IIS?响应代码405(不允许使用方法)应表示您正在尝试服务器不接受的方法(获取、放置、修补、发布、删除、选项、跟踪)。由于您说它在没有正文内容的情况下工作,所以在我看来,您的后端可能发送了错误的响应代码。无论哪种方式,通过检查POST/etc请求,确认您正在通过开发工具发送格式良好的数据,然后对后端进行故障排除;查找跟踪日志(如果可用)。@mplungjan我在LAMP环境中,顺便说一句,使用Zend Framework 2。添加自定义头时,它不再是一个简单的CORS请求。它首先发出一个选项请求。如果服务器上未启用该功能,则会失败。请参阅中的“预飞请求”,它似乎在抱怨
选项
预飞,因此您需要确保它接受
选项
并正确返回。
选项
请求应返回无正文的响应,响应代码为
204
,并且至少包含
访问控制允许方法
访问控制允许来源
(和
访问控制允许凭据
,如果适用)的标题。我建议你仔细阅读或查看一下这本书。