小编典典

jQuery AJAX仅在IE中不向我的服务器发送UTF-8

ajax

我正在将UTF-8(日语文本)发送到我的服务器。它可以在Firefox中使用。我的access.log和标头是:

/ajax/?q=%E6%BC%A2%E5%AD%97
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Content-Type    application/x-www-form-urlencoded; charset=UTF-8

Howe,在IE8中,我的access.log说:

/ajax/?q=??

出于某种原因,IE8将我的AJAX呼叫变成了问号。为什么!?我根据一些教程添加了scriptCharset和ContentType,但是还是没有运气。

这是我的代码:

$.ajax({
    method:"get",
    url:"/ajax/",
    scriptCharset: "utf-8" ,
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    data:"q="+query ...,
    ...
    })

阅读 256

收藏
2020-07-26

共1个答案

小编典典

尝试使用编码查询参数 encodeURIComponent()

data:"q="+encodeURIComponent( query )

正如bobince在他的评论中非常正确地指出的那样,如果使用对象表示法将参数传递给ajax方法,它将自行处理编码。

所以

data:{ q : query }

将使jQuery处理编码..

2020-07-26