jak uniknąć polityki cross domain w jquery ajax za korzystanie z usługi wcf ??jak uniknąć polityki cross domain w jquery ajax za korzystanie z usługi wcf?
Jakie typy danych muszę wykonać w web.config dla zasad dotyczących domen?
jak uniknąć polityki cross domain w jquery ajax za korzystanie z usługi wcf ??jak uniknąć polityki cross domain w jquery ajax za korzystanie z usługi wcf?
Jakie typy danych muszę wykonać w web.config dla zasad dotyczących domen?
Jeśli chcesz wywołania między domenami z javascript do WCF, musisz użyć JSONP. Aby dodać obsługę JSONP do WCF, musisz zdefiniować ją w WebHttpBinding
. Konfiguracja powinna wyglądać następująco:
<bindings>
<webHttpBinding>
<binding name="crossDomain" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
</binding>
<behaviors>
<endpointBehavior>
<behavior name="restBehavior">
<webHttp />
</behavior>
</endpointBehavior>
</behaviors>
<services>
<service name="...">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="crossDomain"
contract="..." behaviorConfigurations="restBehavior" />
</service>
</services>
dla jQuery części czeku na przykład this article.
Dostałem go do pracy przy użyciu zestawu ustawień JQuery (1.5.1) $ .ajax CrossDomain na wartość true.
Czego jeszcze nie rozumiem, to dlatego, że przy korzystaniu z atrybutu [ScriptMethod (ResponseFormat = ResponseFormat.Json)] w usłudze WCF (.NET4), wywołanie powiedzie się bez ustawienia crossdomain (do sieci. config i $ .ajax) i przy użyciu atrybutu [WebGet (ResponseFormat = WebMessageFormat.Json)] wymaga ustawień crossdomain w wywołaniach webconfig i $ .ajax. Jeśli użyję atrybutu WebGet bez ustawień crossdomain, otrzymam błąd "Method Not Allowed".
kod WCF jest stosowany:
[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;
}
jakieś pomysły?
chrom/Firefox nie pozwolił mi tego zrobić, dopóki nie jawnie ustawić
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
w moich rozmów
Witam, stworzyliśmy usługę typu post.When przesyłam dane z jquery ajax to nie działa. Metoda typu GET działa dobrze. – user601367
Połączenia JSONP/Cross Domain działają tylko z HTTP GET. Więcej informacji tutaj: http://stackoverflow.com/questions/2699277/post-data-to-jsonp –
jak utworzyć żądanie 'POST' w domenie' cross domain' przez ajax? –