принять $("#"+id).val()
во вниманиеIE ajax отправка utf8 chars как?
var field = document.getElementById(id);
/* ... */
if(field.value != "")
var jqxhr = $.get("/user/ajaxtag/tag/" + $("#"+id).val(), function(data) {
suggestionText = data;
//does something which i thing is non of problem's business
var arr = getListItems(field.value);
if (field.value.length > 0){
createList(arr);
} else {
clearList();
};
// end of non of business
});
при использовании английский в поле ввода, который вызывает этот кусок кода на изменения, запрос Ajax это ответил успешно, но при использовании фарси как «س» IE посылает этот
GET /user/ajaxtag/tag/??_=1338567574102 HTTP/1.1\r\n
(я получил эту информацию о Wireshark) и заменяет utf8 символы с?, проблема не возникает, когда я использую Firefox, только в IE (не удивительно га?) у меня есть эта строка в заголовке
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
в другом вопросе на stackoverflow.com было предложено изменить php.ini, но я на общем хосте и не имею доступа к файлу.
я сделал alert($("#" + id).val())
, а предупредительной вещи не было? был входной char .. like س
да он должен быть заменен, как 'вар jqxhr = $ .get ("/ пользователь/ajaxtag/теги /" + encodeURIComponent ($ ("#" + id) .val()), функция (данные) {... 'спасибо ... – shampoo
Почему это важно для совместимости с RFC3986? – shampoo
Некоторые платформы требуют, чтобы строки были закодированы в формате RFC3986, encodeURIComponent () не совместимо на 100%, я разместил это для полноты ответа – ioseb