Я пытаюсь получить доступ к wcf сервису от клиента jQuery
Конкретно этот пример http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#4
Все работы хорошо, когда клиентская веб-страница находится на том же домене как сервис
Как только я перемещаю клиентскую веб-страницу в другой домен, это повреждается. Это наклон достигает сервиса и сбоев запроса
Это происходит для всех примеров, ASMX, REST и WCF
какие-либо идеи, как получить этот рабочий крест daomain?
Вы нарушаете политику одного и того же происхождения. Веб-служба, к которой вы обращаетесь, должна находиться в том же домене, что и сценарий jQuery, выполняющий запрос. Эта политика применяется всеми браузерами для предотвращения, например, атак межсайтового скриптинга и внедрения кода в веб-приложения.
Есть разные способы обойти это, включая JSONP, Proxies или Flash.
Нам понадобится немного больше информации, прежде чем мы сможем предложить, какую технику вам следует использовать. Я предпочитаю JSONP . А пока вот небольшое прочтение:
http://taossa.com/index.php/2007/02/08/same-origin-policy/
https://developer.mozilla.org/ En / Same_origin_policy_for_JavaScript
Вот пример использования JSONP:
url = "http://www.test.com/getData.php?callback=parseResults";
document.body.appendChild((function() {
var newScript = document.createElement("script");
newScript.type = "text/javascript";
newScript.src = url;
return newScript;
})());
function parseResults(data) {
alert(data);
}
Вы можете попробовать JSONP (JSON с заполнением) . Короче говоря, он включает добавление элемента сценария на страницу с URL-адресом веб-службы в качестве src. Затем веб-служба обертывает JSON в качестве первого аргумента функции обратного вызова, которая выполняется при анализе сценария.
На элементы скрипта не распространяется действие Same Origin Policy , поэтому они могут обойти эту проблему ..
Обычно вы не сможете; современные браузеры ограничивают это, чтобы предотвратить атаки межсайтового скриптинга. Одним из способов решения этой проблемы может быть использование "дополненного" JSON, JSONP, который вставляет результаты в элемент сценария на вашей странице. Здесь есть образец Microsoft WCF , который, кажется, делает это.
Я столкнулся с той же проблемой в течение 2 дней, и я нашел решение, и после долгих поисков в Интернете оно оказалось элегантным. Мне нужен xss Ajax для некоторых клиентов виджетов, которые перетаскивают поток данных с веб-сайтов уровней в мое приложение Rails. вот как я это сделал.