jQuery Ajax调用,为什么网络活动中列出了两个请求?

时间:2013-10-14 16:52:47

标签: jquery ajax

我正在使用beforeSend标头选项(添加授权令牌)发送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响应

1 个答案:

答案 0 :(得分:5)

ajax请求是否来自其他域或端口?在这种情况下,它是Cross-site HTTP request,浏览器将首先发送OPTIONS请求以检查GET请求是否可以安全发送。

通常,GET请求不会先发送OPTIONS,但在这种情况下,可能会因为您设置额外的标头而发出“preflight”请求。