gpt4 book ai didi

javascript - 使用 jQuery 在请求 header 中设置中文字符

转载 作者:行者123 更新时间:2023-12-01 17:54:46 24 4
gpt4 key购买 nike

我正在发出一个 jQuery 发布请求,其中我在 header 中设置了客户端提供的一些信息。调用看起来像这样:

jQuery.ajax({
url : myURL,
type : "POST",
beforeSend : function(request){
request.setRequestHeader('someInfo', clientInformation);
},
data : someData,
contentType : "text/plain",
success : successCallback,
error : errorCallback
});

这工作正常(大部分时间),但是如果客户端将中文字符输入到我在变量 clientInformation 中传递的数据中,请求将失败并显示消息: SyntaxError:无法在“XMLHttpRequest”上执行“setRequestHeader”:,后跟请求,然后 不是有效的 HTTP header 字段值。

我尝试通过在请求的 beforeSend 部分包含这一行来设置编码,但它似乎不起作用:

request.setRequestHeader("Content-Type",
"application/x-www-form-url-encoded; charset=utf-8");

如何配置我的 ajax 请求以发送中文(或其他非 iso-8859-1)字符?

最佳答案

我有类似的问题。错误的原因是自定义 header 包含非 ASCII 字符。

要处理此类字符串,您必须对它们进行 URL 编码:

request.setRequestHeader('someInfo', encodeURIComponent(clientInformation));

或者如果您像我一样更改推荐人:

request.setRequestHeader("Referrer", encodeURI('http://example.com/马轶群'));

关于javascript - 使用 jQuery 在请求 header 中设置中文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30599351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com