ajax设置header属性及获取不到request的header自定义属性问题

ajax设置header属性及获取不到request的header自定义属性问题,第1张

ajax设置header属性及获取不到request的header自定义属性问题

request设置header属性:

示例代码中有两种设置方式,二选一即可

$.ajax({
    url: requestUrl?time=" + new Date().getTime(),
    type: "GET",
    async: false,
    //设置方式一:
    beforeSend: function (XMLHttpRequest) {
        XMLHttpRequest.setRequestHeader("one-token",'123456');
    },
    //设置方式二:
    headers:{'twotoken': 'abcdef'},
    success: function (result) {
        console.log("result:",result);
    }
});

后端获取header属性:String one-token = request.getHeader("one-token");

后端获取不到request的header自定义属性问题

错误示例:XMLHttpRequest.setRequestHeader("one_token",'123456');

当设置的headerName包含下划线“_”时,后端会无法获取到该header属性

原因:nginx会默认设置去除header属性名包含下划线"_"的属性

解决方法一:header属性名删除下划线,或者连接符改为中划线"-"
解决方法二:修改nginx的配置文件 nginx.conf :underscores_in_headers on; (改为on,默认值是off)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5680800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存