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

标签 jquery ajax

我正在使用 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/

相关文章:

javascript - Laravel动态表单输入文本并上传文件

javascript - 如何在无序列表中缩进换行?

javascript - jQuery 语法错误 - 意外的标记

jquery - 无法将变量添加到 success 函数

java - AppEngine Java Google+ 登录缺少 gplus_id

javascript - 数据压缩以减少网络带宽使用

c# - 文本框中的背景文本

php - 如何使用雅虎财经获取实时股价

jQuery 简单选项卡

javascript - 动态 (AJAX) HTML 创建