un vistazo al blog de Gil Fink con respecto a la combinación de WCF Data Services, JSONP y jQuery
http://blogs.microsoft.co.il/blogs/gilf/archive/2011/04/24/combining-wcf-data-services-jsonp-and-jquery.aspx
Durante Mike Flasko de session en MIX11, mostró cómo crear una cuenta de servicio de datos WCF JSONP con un atributo JSONPSupportBehavior disponible para download desde la galería de códigos MSDN (y se supone que forma parte del espacio de nombres Microsoft.Data.Services.Extensions). En esta publicación, mostraré un ejemplo simple que utiliza el atributo y jQuery para realizar una llamada de dominio cruzado JSONP para un servicio de datos WCF.
Configuración del entorno del
Primero empecé mediante la creación de dos aplicaciones ASP.NET Web diferente. La primera aplicación incluye la página de llamadas y la segunda incluye el servicio de datos WCF. Luego, creé en la segunda aplicación web un modelo de Entity Framework y el WCF Data Service de ese modelo. También agregué la clase JSONPSupportBehavior.cs que existe en el link que proporcioné anteriormente. La clase incluye la implementación de JSONPSupportBehavior que implementa la interfaz WCF IDispatchMessageInspector. También incluye el JSONPSupportBehaviorAttribute que uso en mi código. El código es simple y se ve así:
[JSONPSupportBehavior]
public class SchoolDataService : DataService<SchoolEntities>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
Hacer la llamada JSONP
En la segunda aplicación web que he creado un formulario web que llevará a cabo el ejemplo de llamada JSONP. Aquí está el código que realiza la llamada:
<!DOCTYPE html>
<html>
<head runat="server">
<title>JSONP Call</title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<output id="result">
</output>
</form>
<script type="text/javascript">
$.getJSON('http://localhost:23330/SchoolDataService.svc/Courses?$format=json&$callback=?',
function (response) {
$.each(response.d, function (index, value) {
var div = document.createElement('div');
div.innerHTML = value.Title;
$('#result').append(div);
})
});
</script>
</body>
</html>
Vamos a explorar el código de formulario web: Al principio utilizo Microsoft CDN con el fin de recuperar la biblioteca de jQuery. Luego, he creado un elemento de salida HTML5 para agregarle la salida de la llamada. En el script principal utilizo la función getJSON de jQuery que llama al Servicio de datos WCF. Preste atención que para obtener una respuesta JSON del Servicio de datos WCF necesita usar el parámetro de cadena de consulta $ format = json. Después de recuperar los datos, repito y creo un elemento div para cada título del curso que se recuperó. Esto se hace en la función de éxito que conecté en la llamada a la función getJSON. Aquí está la salida de ejecutar el código:

Resumen
En el post que suministró un ejemplo sencillo de hacer una llamada JSONP a un servicio de datos WCF utilizando jQuery. Este tipo de solución puede ayudarle a consumir los servicios de datos WCF que existen en otros dominios desde su lado del cliente. En una publicación de seguimiento, mostraré el mismo ejemplo usando la nueva biblioteca datajs
¿Actualizarías esto para mostrar POST en lugar de PUT? POST generalmente se acepta como la forma más segura de evitar travesuras en sitios cruzados – LamonteCristo