Я пытаюсь создать запрос ajax для WebService, который возвращает данные с заданными параметрами в XML. Это похоже на работу в IE, но Firefox не может декодировать ответ. Я также могу просмотреть ответ в Fiddler после декодирования. Вот код:
$(function() {
$.ajax({
type: "GET",
url: 'http:/localhost/webservice.asmx/GetTags?groupId=10',
contentType: "text/xml; charset=utf-8",
dataType: "xml",
success: function(response) {
$('#result').html('success',response);
$(response).find("string").each(function() {
$('#result').append($(this).text());
});
},
error: function(response) {
$('#result').html('failure',response);
}
});
});
Есть ли способ указать, что ответ необходимо декодировать? Или любой другой способ заставить его работать?
EDIT: @ Nikki9696 - это не JSON, закодированный, поскольку данные возвращаются в XML.
@Oleg - Образец XML можно увидеть в браузере, если доступ к веб-сервиса с помощью URL выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>tag 1</string>
<string>tag 2</string>
<string>tag 3</string>
</ArrayOfString>
Скрипач в TextView возвращает �
и сообщение
«Response закодирован и может потребоваться до , прежде чем проверять. Нажмите здесь, чтобы преобразовать. "
После щелчка на нем отображается тот же XML. Я выключаю динамическое сжатие содержимого в IIS, тогда XML сразу видно в скрипде, но FF все еще не справляется, поэтому исключает сжатие.
Я немного поиграл со сценарием, похоже, что jQuery может по умолчанию или угадывать некоторые параметры, поэтому dataType, например, не является обязательным. С этими настройками я получаю сообщение об успешном завершении, однако он все еще не знает, что делать с данными. Я попытался установить dataType на «jsonp», как было предложено в каком-то потоке SS (не могу найти его в данный момент, свяжу его, когда я это сделаю), и ошибка изменится на missing ; before statement
, я думаю, потому что это не объект JSON, а XML. Есть ли способ заставить webservice возвращать JSON вместо этого?
EDIT 2: Я обновил url
, чтобы отразить то, что на самом деле произошло. Извините, я пропустил это, сделав невозможным, чтобы кто-нибудь это заметил.
Когда вы говорите «декодировать», вы имеете в виду, что это кодируется JSON? – Nikki9696
можете ли вы включить данные xml, которые вы получаете из веб-сервиса назад и которые вы видите в Fiddler? – Oleg