#jquery #ajax #post
#jquery #ajax #Публикация
Вопрос:
Я пытаюсь использовать библиотеку jQuery ajax.
Все в порядке, за исключением того, что данные усекаются. Оно станет единственным <soapenv:Envelope xmlns:soapenv:"http://schemas.xmlsoap.org/soap/envelope/" xmlns:asi
(остальное отсутствует). Есть идея?
//var soap contain as following
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:asi="http://siebel.com/asi/"><soapenv:Header/><soapenv:Body><asi:SiebelAccountQueryById> <PrimaryRowId>3-2A2-3235</PrimaryRowId></asi:SiebelAccountQueryById></soapenv:Body></soapenv:Envelope>
jQuery.ajax({
type: 'POST',
url: url,
data: soap,
success: function() {
console.log("success calling web service");
},
dataType: 'xml'
});
Дальнейшее обновление
Я изменил значение soap выше в этих атрибутах:
xmlns:soapenv
xmlns:asi
должно быть что-то вроде 111 =»222″ aaa = «bbb»
Оно все равно усекается во ВТОРЫХ атрибутах. Если я удалю один из атрибутов, ни один из них не будет усечен, отправляются целые SOAP XML.
Комментарии:
1. Возможно, это могло бы помочь: bennadel.com/blog /…
Ответ №1:
Попробуйте экранировать данные перед отправкой:
jQuery.ajax({
type: 'POST',
url: url,
data: encodeURIComponent(soap),
success: function() {
console.log("success calling web service");
},
dataType: 'xml'
});
Ответ №2:
Первое, что я бы сделал, это поместил туда пару всплывающих окон alert (). Один после установки переменной, другой при вызове функции. Выясните, где в нем есть полная строка, а где ее нет, и продолжайте отслеживание, чтобы вы могли выяснить, почему она усекается.
Ответ №3:
Ссылка, приведенная Маджидом выше, решила мою проблему. Необходимо установить атрибуты AJAX, чтобы указать, что это XML-сообщение. Тогда усечение больше не происходит
Не уверен, как принять это в качестве ответа .. поскольку это часть комментария.