Дело в том, что нет никакого способа «временно» отключить междоменный XMLHttpRequest, если вы можете временно отключить его, то он может быть отключен навсегда. Это довольно распространенная проблема в современном программировании AJAX и чаще всего решается с использованием техники, известной как междоменный сценарий.
Идея заключается в том, что если вы вызываете междоменный скрипт, он возвращает результаты JavaScript (JSON), которые затем передаются функции на вашем конце.
Вот пример кода для иллюстрации того, как он может выглядеть с точки зрения кода JavaScript:
function request_some_data() {
var s = "http://my.document.url.com/my_data?p1=v1&p2=v2&callback=myfunc";
try {
try{
document.write("<scr"+"ipt type='text/javascript' src='"+s+"'></scr"+"ipt>");
}
catch(e){
var x = document.createElement("script");
x.src = s;
document.getElementsByTagName("head")[0].appendChild(x);
}
}
catch (e) {
alert(e.message);
}
}
Затем вы определите функцию в своем коде, которая получает данные, а на сервере вы «обрабатываете» случай обратного вызова, вот JavaScript на стороне клиента:
function myfunc(data) {
alert(data);
}
А на стороне сервера, здесь я привожу пример PHP, но это можно сделать так же легко в Java или любой другой технологии на стороне сервера:
<?php
if($_GET["callback"]) {
print($_GET["callback"] . "(");
}
/* place your JSON object code/logic here */
if($_GET["callback"]) {
print(");");
}
?>
Обратите внимание, что то, что вы генерируете на стороне сервера, в конечном итоге представляет собой некоторый JavaScript, который выполняется на стороне клиента.