cómo evitar la política de dominio cruzado en jquery ajax para consumir el servicio wcf ??cómo evitar la política de dominio cruzado en jquery ajax para consumir el servicio wcf?
¿Qué debo hacer en web.config para la política de dominios cruzados?
cómo evitar la política de dominio cruzado en jquery ajax para consumir el servicio wcf ??cómo evitar la política de dominio cruzado en jquery ajax para consumir el servicio wcf?
¿Qué debo hacer en web.config para la política de dominios cruzados?
Si desea realizar llamadas de dominio cruzadas de javascript a WCF, debe utilizar JSONP. Para agregar soporte JSONP a WCF, debe definirlo en WebHttpBinding
. La configuración debe ser similar:
<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>
Para la comprobación parte jQuery por ejemplo this article.
Lo tengo que trabajar usando la configuración JQuery (1.5.1) $ .ajax CrossDomain establecida en verdadero.
Lo que aún no entiendo es por qué cuando se usa el atributo [ScriptMethod (ResponseFormat = ResponseFormat.Json)] en el servicio WCF (.NET4), la llamada se realiza sin la configuración de dominio cruzado (a web. config y $ .ajax) y al usar el atributo [WebGet (ResponseFormat = WebMessageFormat.Json)] requiere la configuración de dominios cruzados en webconfig y $ .ajax call. Si utilizo el atributo WebGet sin la configuración de dominios cruzados obtendré un error de "Método no permitido".
código de WCF se utiliza:
[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;
}
alguna idea?
Chrome/Firefox no me dejaría hacer esto hasta que establecer explícitamente
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
en mis llamadas
Hola, he creado un servicio de tipo post.When Estoy enviando datos de jquery ajax no funciona. El método de tipo GET funciona bien. – user601367
Las llamadas JSONP/de dominio cruzado solo funcionan con HTTP GET. Más información aquí: http://stackoverflow.com/questions/2699277/post-data-to-jsonp –
cómo hacer una solicitud 'POST' del dominio cruzado' a través de ajax? –