【发布时间】:2013-04-27 09:11:15
【问题描述】:
我正在尝试使用自定义标头进行跨域 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 请求方法的内容。我认为从未提出过预检请求。
那么,有什么想法吗?
提前致谢。
【问题讨论】:
-
控制台标签中显示了什么?
-
@Obaid 控制台选项卡中没有任何内容。虽然,如果我使用
console.log(request),我可以看到请求的 readyState 为 0。