我正在使用 beforeSend header 选项(添加授权 token )发送 Ajax 调用,运行良好,但我可以看到控制台中列出了 2 个请求...
$.ajax('https://macMini.local:8000/Products', {
type: "GET",
cache: false,
async: false,
dataType: "json",
beforeSend: function (xhr, settings){
xhr.setRequestHeader('Authorization', 'Bearer ' + amplify.store( "tokens" ).access_token);
}
})...
在开发浏览器控制台中,我看到:
Request URL:https://macmini.local:8000/Products?_=1381768498131
Request Method:OPTIONS
Status Code:204 No Content
...
没有任何反应 和
Request URL:https://macmini.local:8000/Products?_=1381768498131
Request Method:GET
Status Code:200 OK
...
使用 JSON 响应
最佳答案
ajax 请求是从另一个域或端口发出的吗?在这种情况下,它是 Cross-site HTTP request ,浏览器将首先发送一个 OPTIONS 请求来检查 GET 请求是否可以安全发送。
通常 GET
请求不会首先发送 OPTIONS
,但在这种情况下,可能会因为您设置了额外的 header 而发出“preflight ”请求。
关于jQuery Ajax 调用,为什么网络事件中列出了两个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365220/