2012-01-14 2 views
4

Я разрабатываю веб-страницу, где пользователь ищет файлы с помощью тегов. Я использую jQuery Ajax для выполнения удаленного вызова API (базы данных). Все работает отлично, когда я использую неспециальные символы, такие как a-z, но не работает, например, с помощью åäö.Невозможно отправить специальные символы через jQuery ajax

На сервере я использую PHP. Я печатаю тег, чтобы узнать, «придет ли он», и все a-z отлично работают, но åäö вообще не отображается. Они, похоже, «не приходят».

Что может быть неправильным?

Это мой JQuery код:

var tags = $('#tags').val(); 

$.ajax ({ 
    type: "POST", 
    url: base_url + "search", 
    data: "tags=" + tags + "&limit=" + limit, 
    beforeSend: function (html) { 
      $("#search_results").html("Searching for files..."); 
    }, 
    success: function (html) { 
      $("#search_results").html(html); 
    }, 
    error: function (html) { 
      $("#search_results").html('Something went wrong!'); 
    } 
}); 

Это мой сервер код сторона:

echo ($_POST['tags']); 

Я ищу и смотрел на смежные вопросы об этом здесь на SO, но не помогла мне, к сожалению.

UPDATE

Используя это решить ее! Сейчас работает отлично.

{tags: encodeURIComponent(tags), limit: limit} 
+0

Try' "теги =" + encodeURIComponent (теги) + "& предел =" + ENC odeURIComponent (limit) 'или' {tags: tags, limit: limit} '. –

+0

Это не работает: данные: "tags =" + encodeURIComponent (теги) + "& limit =" + limit –

+0

{tags: tags, limit: limit} тоже не работают. –

ответ

8

данных (теги) должны быть закодированы перед отправкой его на сервер с помощью encodeURIComponent()

+0

Это не работает: data: "tags =" + encodeURIComponent (tags) + "& limit =" + limit –

+2

Убедитесь, что все части вашего потока находятся в UTF-8 check: HTML-страница; кодирование запроса; кодирование на стороне сервера; 'AJAX.setRequestHeader (« Content-type »,« application/x-www-form-urlencoded; charset = UTF-8 »);' 'meta http-equiv =" content-type "content =" text/html; charset = UTF-8 "' В основном вам придется трассировать, по какому типу кодирования шага теряется. –

+0

Спасибо, он решил мою проблему с отправкой специальных символов в JQuery AJAX-запрос в Internet Explorer. –

0

вы можете добиться этого с помощью объекта JSON

например: [{ "AttributeId": "4035 », "Значение": "Улица & дом"}]

или вы можете использовать UrlEncode перед столбом