跨域Ajax的预检与自定义标头(使用jquery)总是被取消

时间:2013-05-03 02:55:41

标签: jquery ajax rest cors

我正在尝试使用自定义标头进行跨域POST,但预检始终会被取消(这是Chrome中的单词" Inspect Element" panel>> "网络"标签),我无法判断它是被浏览器还是由jQuery取消。代码是:

var request = $.ajax({
    'type'        : 'POST',
    'crossDomain' : true,
    'url'         : 'https://host.domain/some_path',
    'data'        : {'some_key': 'some_value'},
    'headers'     : {
        'Authorization'        : 'CUSTOM-METHOD credential_id:credential_secret',
        'X-Some-Custom-Header' : '2013-05-02'
    }
})
.done(function(blah){blah})
.fail(function(blah){blah});
  • 如果我删除了header对象,或将其设置为{},则可以成功完成请求。
  • 如果我删除授权标题,预检仍会被取消。

我不认为这是服务器端问题,因为服务器日志中的OPTIONS请求方法没有任何内容。我认为从未做过飞行前请求。

那么,任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

弄明白:HTTPS中使用的凭据存在问题,与代码无关。
我自己生成了服务器凭证,需要告诉浏览器信任凭证。