Как избежать перекрестной политики домена в jQuery ajax для использования службы wcf?
как избежать перекрестной политики домена в jQuery ajax для использования службы wcf?
Какие шаги мне нужно сделать в web.config для междоменной политики?
Ответ 1
Если вам нужны перекрестные вызовы из javascript в WCF, вы должны использовать JSONP. Чтобы добавить поддержку JSONP в WCF, вы должны определить ее в WebHttpBinding. Конфигурация должна выглядеть так:
Для части jQuery проверьте, например, в этой статье.
Ответ 2
Я получил его для работы с использованием параметра JQuery (1.5.1) $.ajax CrossDomain, установленного в true.
То, что я еще не понимаю, это то, что при использовании атрибута [ScriptMethod (ResponseFormat = ResponseFormat.Json)] в службе WCF (.NET4) вызов выполняется без настройки crossdomain (to web.config и $.ajax), и при использовании атрибута [WebGet (ResponseFormat = WebMessageFormat.Json)] для него требуются настройки crossdomain в webconfig и $.ajax call. Если я использую атрибут WebGet без настроек crossdomain, я получу ошибку "Не разрешен метод".
Используется код WCF:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)] // requires crossdomain settings
//[ScriptMethod(ResponseFormat = ResponseFormat.Json)] // no crossdomain settings required
public string GetNumber(string id)
{
return "query response on id: " + id;
}
любые идеи?
Ответ 3
chrome/firefox не позволял мне делать это, пока я явно не установил