跨域Ajax访问header中 x-requested-with丢失

前端调用后端接口,本域情况下,ajax方式调用,request header中包含x-requested-with信息。

clipboard.png

跨域情况下,request header中不再包含x-requested-with。
说明:
1.前端ajax封装的jquery的$.ajax方法。
2.后端header相关设置已允许接收x-requested-with。
3.尝试手动设置header,失败

$.ajax({
        url:'http://b.com/index.php',
        //url:'test.php',
        type:'GET',
        data:data,
        dataType:'json',
        headers:{
            "Access-Control-Allow-Headers":"Origin, Content-Type, Cookie, Accept",
             "Content-Type" : "multipart/form-data,application/x-www-form-urlencoded; charset=UTF-8",
             "X-Requested-With":"XMLHttpRequest"
        },
        xhrFields:{
            withCredentials:true
        }, 
        success:function(res){
            console.log(res);
        },
    })

请问X-Requested-With丢失原因,是否可以通过手动设置的方法实现以及实现方法。感谢。

阅读 11.9k
1 个回答

貌似不行,JSONP 是通过创建 script 标签来达到跨域请求的,没法额外指定请求 header。


不好意思,一看到跨域就不由自主的联想到 JSONP,没细看问题,可能答错了。删了回答还要扣 5 分,日。


服务端能加点东西吧,响应头里面增加 Access-Control-Allow-Headers: x-requested-with,content-type 可以多个,逗号分隔,把你需要发送的 header 都加进去。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进