Горе XMLHttpRequest xml ответа с jQuery 1.4.1, как вынудить ответ запроса быть обработанным как простой текст?

Я просто играю вокруг с jQuery и пробую что-то, что должно быть просто, но он просто не работает.

    $(document).ready(function(){
 $.ajax({
  url : 'http://soiduplaan.tallinn.ee/',
  data : {a : 'p.routes', transport_id : 'tram', t : 'xml', l : 'ee'},
  error : function(xhr, stat){
   alert('error'); 
  },
  success : function(data){
   alert('success');
   alert(data);
  }
 });
});

Отрывок находится в test.js файле и включен в файл test.html, который открыт в Firefox (3.6) как file:///C:/test.html и хотя 'успех' показывают, данные пусты и через Firebug ответ для дисплеев XML:

X`ML Parsing Error: no element found Location: moz-nullprincipal:{5ac44e50-2cb6-45d1-9cfe-0b999850ecdb} Line Number 1, Column 1:`

Кроме того, я попробовал то добавление

dataType : "text"

не имеет никакого эффекта, результат все еще обрабатывается как xml (вероятно, потому что ответ имеет тип контента: text/xml; charset=UTF-8).

Я могу видеть результаты ответа через Firebug, если я установил

dataType : "script"

но затем поскольку это не на самом деле действительный js сценарий, это просто перестало работать, дисплеи Firebug:

    invalid regular expression flag t
..._days>http://www.w3schools.com/Dom/dom_validate.asp, это не отображает "ошибок, найденных" итак, почему это не будет работать через xmlhttprequest?

Что я делаю неправильно?

Было бы возможно так или иначе вынудить ответ xmlhttprequest быть обработанным как текст/плоскость?

br, iges

P.S. Я имею усталый предложенный тип данных: опция "HTML" (забыл упоминать первоначально), но "HTML" также не работает и в Firebug I, видит ту же ошибку о parsing/moz-nullprincipal.

Также сервисом, обеспечивающим данные XML, управляет третье лицо, к которому у меня нет доступа, или существует способ сделать это, или я должен буду поцеловать на прощание со своей идеей :(

8
задан iges 29 January 2010 в 14:51
поделиться

4 ответа

Как насчет HTML?

dataType : "html"

http://docs.jquery.com/specify_the_data_type_for_ajax_requests

"html": обрабатывать ответ как HTML (простой текст); включены теги скрипта оценивается.

3
ответ дан 5 December 2019 в 20:16
поделиться

Вы выполняете этот код из того же самого домена ? (http://soiduplaan.tallinn.ee)

Потому что вы не можете использовать вызовы ajax для получения данных с других доменов ... (если только не используются типы данных JSONP или скрипта ...)

Когда данные извлекаются с удаленных серверов (что возможно только с помощью типов данных скрипта или jsonp), ...

Альтернативой может быть запрос jQuery на локальный файл, который будет получать данные со стороны сервера и обслуживать их в запросе ajax...

, например
. php: http_post_data
asp: Microsoft.XMLHTTP

5
ответ дан 5 December 2019 в 20:16
поделиться

doh '

Пробовал запрос YQL только для того, чтобы выяснить, что Robots.txt блокирует: (

-1
ответ дан 5 December 2019 в 20:16
поделиться

Это должно сработать:

$(document).ready(function(){ 

$('#test').click( function() {
    $.ajax({ 
    url : 'http://soiduplaan.tallinn.ee/',
    dataType : 'xml',  
    data : {a : 'p.routes', transport_id : 'tram', t : 'xml', l : 'ee'}, 
    error : function(xhr, stat){ 
    alert('error');  
    }, 
    success : function(data){ 
    alert('success'); 
    $('#foo').html(data);  // could also use text(data) to see XML returned as text
    } 
    }); 
  });
});  

Предполагается, что у вас есть HTML-файл следующего вида:

<body>
<div>
<h1> Tester</h1>
</div>
<br />
     <input type="button" id="test" value="Test" />
     <div id="foo">
     </div>
 </body>

ПРИМЕЧАНИЕ: Похоже, это отлично работает в IE8, но не так сильно в FF3.6

0
ответ дан 5 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: