Я просто играю вокруг с 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, управляет третье лицо, к которому у меня нет доступа, или существует способ сделать это, или я должен буду поцеловать на прощание со своей идеей :(
Как насчет HTML?
dataType : "html"
http://docs.jquery.com/specify_the_data_type_for_ajax_requests
"html": обрабатывать ответ как HTML (простой текст); включены теги скрипта оценивается.
Вы выполняете этот код из того же самого домена ? (http://soiduplaan.tallinn.ee)
Потому что вы не можете использовать вызовы ajax для получения данных с других доменов ... (если только не используются типы данных JSONP или скрипта ...)
Когда данные извлекаются с удаленных серверов (что возможно только с помощью типов данных скрипта или jsonp), ...
Альтернативой может быть запрос jQuery на локальный файл, который будет получать данные со стороны сервера и обслуживать их в запросе ajax...
, например
.
php: http_post_data
asp: Microsoft.XMLHTTP
doh '
Пробовал запрос YQL только для того, чтобы выяснить, что Robots.txt блокирует: (
Это должно сработать:
$(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