Ajax jQuery не отправляет UTF-8 на мой сервер, только в IE

Я отправляю 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

Howeer, в 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 ...,
    ...
    })
24
задан Gabriele Petrioli 26 August 2010 в 12:00
поделиться

1 ответ

Попробуйте закодировать параметр запроса с помощью encodeURIComponent ()

data:"q="+encodeURIComponent( query )

, как очень правильно заметил Бобинс в своем комментарии, если вы используете нотацию объекта для передачи параметры к методу ajax он сам будет обрабатывать кодировку ..

поэтому

data:{ q : query }

заставит jQuery обрабатывать кодировку ..

54
ответ дан 28 November 2019 в 22:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: