Как отключить междоменное ограничение - PullRequest
2 голосов
/ 28 сентября 2010

Я предоставляю веб-сервис, который возвращает данные в виде объекта JSON. Проблема в Ajax, Ajax не может вызвать междоменный URL. Можно ли его отключить?

Ответы [ 2 ]

4 голосов
/ 28 сентября 2010

Вы не можете отключить его, но можете решить проблему, приняв JSONP -запросы.

0 голосов
/ 28 сентября 2010

Используйте JSONP, если вы можете контролировать реакцию другого сервера. JSONP должен возвращать JavaScript-совместимый скрипт. (var hi = {json = stuff};)

Пример для клиента HTML:

// This is our function to be called with JSON data
function showPrice(data) { 
    alert("Symbol: " + data.symbol + ", Price: " + data.price);
}
var url = “ticker.js”; // URL of the external script
// this shows dynamic script insertion
var script = document.createElement('script');
script.setAttribute('src', url);

// load the script
document.getElementsByTagName('head')[0].appendChild(script); 

В этом случае URL "ticket.js" содержит что-то вроде этого:

var data = {symbol: 'Hi', price: 91.42};

Вторая возможность - создать локальный (php, perl, ruby, что бы вы ни использовали) скрипт, который проксирует внешний источник JSON.

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