Вы можете избежать прокси, используя такую технику, как JSONP . Предполагая, что веб-служба, с которой вы разговариваете, поддерживает JSONP (например, Flickr или Twitter оба предлагают API-интерфейс JSONP) или вы имеете контроль над данными, которые отправляет веб-служба, вы можете отправлять данные JSON между доменами, используя библиотеку с JSONP. .
Например, в jQuery вы можете сделать удаленный вызов JSON:
jQuery.getJSON("http://www.someothersite.com/webservice?callback=?", function(result)
{
doStuffWithResult(result);
});
Поскольку вызов осуществляется в другой домен, jQuery автоматически использует некоторые хитрости для выполнения междоменного вызова. JQuery автоматически заменит? в URL с именем функции обратного вызова, которую веб-служба может использовать для форматирования возвращаемых данных JSON.
Если вы управляете веб-службой, вы можете обработать запрос JSONP, получив параметр запроса «обратный вызов», который будет установлен на имя функции обратного вызова, которое вам нужно использовать. Функция обратного вызова принимает один параметр, который представляет собой данные JSON, которые вы хотите отправить обратно. Итак, если для параметра обратного вызова задано значение «jsonp2342342», вам нужно, чтобы веб-служба отвечала следующим образом:
jsonp2342342({key: value, key2: value});
Если используемый вами веб-сервис уже поддерживает JSONP, вам не придется беспокоиться о самостоятельном форматировании.