Can't get the JSONP working with WCF Data Services

陌路散爱 提交于 2019-12-06 22:25:47

问题


It seems from all that I read and watched, exposing JSON from a WCF Data Service should be as easy as adding the JSONPSupportBehavior attribute to the service class.

The problem is that VS2010 doesn't recognize the JSONPSupportBehavior attribute.

Is there a reference I am missing? It seems like from all the articles, it was supported out of the box.


回答1:


WCF Data Services supports JSON out of the box, no need to add attributes or anything.

In order to receive a response in JSON format clients use standard HTTP content type negotiation.

Specifically, they need to include application/json in the accept header of the request.

There are examples in this section of the OData protocol documentation.

These examples show the raw HTTP requests. Different client HTTP APIs have different mechanisms to specify request headers.

The JSONPSupportBehavior attribute is an example of an extension that allows clients to use a URL query string option (i.e. $format=json) in addition to content-type negotiation, and also adds support for "JSONP" (i.e. $callback=[function-name]).

These are useful in situations where you don't control the headers, such as when doing cross-domain access through script tags.

If you want to use the JSONPSupportBehavior you can obtain it here:

http://code.msdn.microsoft.com/DataServicesJSONP




回答2:


Newer versions of WCF Data Services support JSON by default and you must have

Accept: application/json;odata=verbose

in the request header.

Accept: application/json

is no longer sufficient. More info here.




回答3:


WCF not only suppors JSON out-of-the-box, but it also supports JSONP out-of-the-box if you use WCF WebApi (preview 6). Get in VS 2010 with NuGet. Once you have it installed, look here for more information.



来源:https://stackoverflow.com/questions/2983078/cant-get-the-jsonp-working-with-wcf-data-services

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!