3

我正在发送带有 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 响应

4

1 回答 1

6

ajax 请求是从另一个域或端口发出的吗?在这种情况下,它是一个跨站点 HTTP 请求,浏览器将首先发送一个OPTIONS请求以检查 GET 请求是否可以安全发送。

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

于 2013-10-14T17:38:31.867 回答