Проблема с получением jquery xml из asp - PullRequest
1 голос
/ 05 апреля 2011

Я пытался использовать jquery для получения сгенерированного asp xml-файла согласно read xml by jquery , но я получаю status = parsererror err = TypeError: data is null. При вводе XML-файла в браузер создается совершенно хороший XML-файл. Я надеюсь, что мне не нужно делать Wget ...

xmlhttp = "http://10.1.10.154:1014/dtsearch_2.asp?cmd=pdfhits&DocId=44&Index=C%3a%5cstream%5cSupport%5cIDX%5fESTATE&HitCount=4&hits=185+1ac+1d5+1ff+&hc=323&req=knife"

$.ajax({
  url: xmlhttp,
  method: "POST",
  dataType: "xml",
  success: function(data) {
      var xdoc = $(data);    // Note that jQuery has already done the parsing for us
      alert("Getting tutorials");
      var tutorials = xdoc.find("loc");
      alert("Found: " + tutorials.length);
      tutorials.each(function() {
          alert("Tutoral author: " + $(this).attr("pg"));
      });
  },
  error: function(jxhr, status, err) {
      alert("Ajax error: status = " + status + ", err = " + err);
  }
});

Я использую локальный IP-адрес и порт 1014, но не понимаю, почему что-то из этого имеет значение ...

Спасибо, Ник

1 Ответ

2 голосов
/ 05 апреля 2011

Выньте var xdoc = $(data) и просто укажите data напрямую.

$.ajax({
  url: xmlhttp,
  method: "POST",
  dataType: "xml",
  success: function(data) {
      alert("Getting tutorials");
      var tutorials = data.find("loc");
      alert("Found: " + tutorials.length);
      tutorials.each(function() {
          alert("Tutoral author: " + $(this).attr("pg"));
      });
  },
  error: function(jxhr, status, err) {
      alert("Ajax error: status = " + status + ", err = " + err);
  }
});

edit

Подпадает под действие Same Policy Policy .Если вам нужно, чтобы он был на отдельном порте, вам нужно использовать JSONP.

note

Начиная с jQuery 1.5, jQuery может конвертироватьdataType от того, что он получил в заголовке Content-Type до того, что вам требуется.Например, если вы хотите, чтобы текстовый ответ обрабатывался как XML, используйте «text xml» для dataType.Вы также можете сделать запрос JSONP, получить его в виде текста и интерпретировать с помощью jQuery как XML: «jsonp text xml».Аналогично, сокращенная строка, такая как «jsonp xml», сначала попытается преобразовать из jsonp в xml, а в случае неудачи - из jsonp в текст, а затем из текста в xml.* ссылка http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...