加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

跨域AJAX不发送X-Requested-With头

发布时间:2020-12-16 03:14:24 所属栏目:百科 来源:网络整理
导读:在http://www.a.com/service.asmx上创建Web服务,并从http://www.b.com向其发送跨域ajax请求。检查Firebug中的标头,或Live HTTP标头或任何其他插件。 在请求标头中没有跟踪X请求的HTTP头字段。 但是,如果您向同一个域中的同一服务发送ajax请求(例如http://
在http://www.a.com/service.asmx上创建Web服务,并从http://www.b.com向其发送跨域ajax请求。检查Firebug中的标头,或Live HTTP标头或任何其他插件。

在请求标头中没有跟踪X请求的HTTP头字段。

但是,如果您向同一个域中的同一服务发送ajax请求(例如http://www.a.com/about),您将看到该头域。

为什么跨域ajax请求忽略X请求的头域?

更新:我知道JSONP调用本质上不是AJAX调用。因此,在JSONP调用中,您将看不到任何X-Requested-With头字段。

如果你使用jQuery来做你的ajax请求,它不会发送头X-Requested-With(HTTP_X_REQUESTED_WITH)= XMLHttpRequest,因为它是跨域。但是有2种方法来修复和发送标题:

选项1)在ajax调用中手动设置标头:

$.ajax({
     url: "http://your-url...",headers: {'X-Requested-With': 'XMLHttpRequest'}
});

选项2)告诉jQuery不要使用跨域默认值,因此它将在ajax请求中保留X-Requested-With头:

$.ajax({
  url: "http://your-url...",crossDomain: false
});

但是这样,服务器必须允许这些头,那么服务器需要打印这些头:

print "Access-Control-Allow-Origin: *n";
print "Access-Control-Allow-Headers: X-Requested-With,Content-Typen";

上面的第一行将避免错误“Origin不允许Access-Control-Allow-Origin”。第二行将避免错误“请求头字段X请求 – 访问控制允许头不允许。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读