0

我正在尝试使用自定义标头进行跨域 POST,但预检总是被取消(这是 Chrome 的“检查元素”面板>>“网络”标签中的词),我无法判断它是被浏览器取消还是通过 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});
  • 如果我删除 headers 对象,或者将其设置为 {},则可以成功发出请求。
  • 如果我删除 Authorization 标头,预检仍将被取消。

我不认为这是服务器端的问题,因为服务器日志中没有关于 OPTIONS 请求方法的内容。我认为从未提出过预检请求。

那么,有什么想法吗?

提前致谢。

4

1 回答 1

0

弄清楚了:这是HTTPS中使用的凭据有问题,与代码无关。
我自己生成了服务器凭据,需要告诉浏览器信任该凭据。

于 2013-05-06T04:27:34.643 回答