Мне пришлось загрузить веб-страницу с локального диска "file: /// C: /test/htmlpage.html", вызвать "http://localhost/getxml.php" url" и сделать это в браузерах IE8 + и Firefox12 +, использовать библиотеку jQuery v1.7.2 для свести к минимуму стандартный код. После прочтения десятков статей, наконец, понял это. Вот мое резюме.
- серверный скрипт (.php, .jsp, ...) должен возвращать HTTP-заголовок ответа Access-Control-Allow-Origin: *
- перед использованием jQuery ajax установите этот флаг в javascript: jQuery.support.cors = true;
- вы можете установить флаг один или каждый раз перед использованием jQuery ajax-функции
- теперь я могу читать .xml документ в IE и Firefox. Другие браузеры я не тестировал.
- Ответный документ может быть простым / текстовым, XML, JSON или любым другим
Вот пример вызова jQuery ajax с некоторыми sysouts отладки.
jQuery.support.cors = true;
$.ajax({
url: "http://localhost/getxml.php",
data: { "id":"doc1", "rows":"100" },
type: "GET",
timeout: 30000,
dataType: "text", // "xml", "json"
success: function(data) {
// show text reply as-is (debug)
alert(data);
// show xml field values (debug)
//alert( $(data).find("title").text() );
// loop JSON array (debug)
//var str="";
//$.each(data.items, function(i,item) {
// str += item.title + "\n";
//});
//alert(str);
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});