jQuery.После усечения значения «data»?

#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-сообщение. Тогда усечение больше не происходит

Не уверен, как принять это в качестве ответа .. поскольку это часть комментария.