Javascript 角度跨域帖子:使用某些浏览器失败

Javascript 角度跨域帖子:使用某些浏览器失败,javascript,angularjs,post,cross-domain,Javascript,Angularjs,Post,Cross Domain,我在Angular(1.4.0)中有一个跨域POST请求,在我删除内容类型标题后,它使用Chrome(43+)和Firefox(37+)工作 但在iPhone/iPad上使用Safari或Safari/Chrome时,它会失败。 然后,错误消息是: 加载资源失败:请求标头字段内容类型不是 访问控制允许标头允许 但在日志中我可以看到: [Log] original httpProvider defaults (app.js, line 6) [Log] Content-Type: applicat

我在Angular(1.4.0)中有一个跨域POST请求,在我删除内容类型标题后,它使用Chrome(43+)和Firefox(37+)工作

但在iPhone/iPad上使用Safari或Safari/Chrome时,它会失败。 然后,错误消息是:

加载资源失败:请求标头字段内容类型不是 访问控制允许标头允许

但在日志中我可以看到:

[Log] original httpProvider defaults (app.js, line 6)
[Log] Content-Type: application/json;charset=utf-8 (app.js, line 7)
[Log] updated httpProvider defaults (app.js, line 13)
[Log] Content-Type: undefined (app.js, line 14)
[Error] Failed to load resource: Request header field Content-Type is not allowed by Access-Control-Allow-Headers. (search, line 0)
...
headers: Object
  Accept: "application/json, text/plain, */*"
因此:即使标头中没有内容类型,也会显示错误消息

有什么建议吗?

片段:

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

app.config(['$httpProvider', function($httpProvider) {
    console.log("original httpProvider defaults");
    console.log("Content-Type:", $httpProvider.defaults.headers.post['Content-Type']);

    //$httpProvider.defaults.useXDomain = true;
    //delete $httpProvider.defaults.headers.common["X-Requested-With"];
    delete $httpProvider.defaults.headers.post['Content-Type'];

    console.log("updated httpProvider defaults");
    console.log("Content-Type:", $httpProvider.defaults.headers.post['Content-Type']);
}]);

app.controller('testController', function($scope, $http, $sce) {
    console.log("testController");

    $scope.url = "http://.../v0/search";
    $scope.data = { "query":"auto" };

    $scope.testPost = function() {
        $http.post($scope.url, $scope.data).
            success(function(data, status, headers, config) {
                console.log("success");
                console.log(data, status, headers, config);
            }).
            error(function(data, status, headers, config) {
                console.log("error");
                console.log(data, status, headers, config);
            });
    }
});

很抱歉打扰您,这毕竟是服务器问题。API提供者已经更新了他们的API,现在它可以工作了

我仍然有点好奇,是什么原因导致服务器对同一请求的处理与不同的浏览器不同, 当日志告诉我没有设置头字段时,我真的不理解错误消息。 但它现在正在发挥作用,这才是最重要的