Jsonp请求无法设置请求头信息

使用jsonp请求添加自定义请求头。获取接口返回结果失败

--------跨域安全限制只针对web端,服务器端不存在限制

chrome:

jsonp 请求返回error:aborded

jquery.min.js:4 GET http://XXX/configService?callback=jQuery111105210777633725245_1576655839134&data=%7B%22method%22%3A...&_=1576655839135 net::ERR_ABORTED 500 (Internal Server Error)

换用firefox请求,正常返回带callback的结果

jsonp ajax请求格式:

$.ajax({
    url:'',
    type:'Get',
    crossDomain:true,
    dataType:'jsonp',
    jsonp:'callback',
    scriptCharset:'utf-8',
    data:{data:Json.stringify(req)},
    xhrFields:{withCredentials:true},
    success:function(){},
    error:function(){}
});

 

问题:后端接收不到自定义请求头“APP-KEY”

解决办法:

使用jsonp请求处理跨域问题时,jsonp请求使用<script>标签,因为<script>、<ifram>、<img>等带有src属性,不受同源策略约束来跨域获取数据,相当于:

 

浏览器不会接收到js添加的任何请求头信息,所以不会传递给后台;即:ajax方式的jsonp请求无法自定义headers

注意:jsonp请求只接受GET,若为post会转化为get;

关于callback: 默认ajax success()作为回调函数

 

ajax jsonp 属性默认‘callback’,若改为其他属性,后端需要 添加Access-Control-Allow-header

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值