2010-06-06 2 views
8

Кажется, что все, что я читал и смотрел, разоблачение JSON из службы данных WCF должно быть таким же простым, как добавление атрибута JSONPSupportBehavior к классу службы.Невозможно получить JSONP, работающий с службами данных WCF

Проблема в том, что VS2010 не распознает атрибут JSONPSupportBehavior.

Есть ли ссылка, которую мне не хватает? Кажется, что из всех статей он был поддержан из коробки.

+0

Загрузить код [здесь] (http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DataServicesJSONP&DownloadId=11208). Это действительно работает! –

+0

Я не думаю, что он по умолчанию включен. См. Это [ссылка] (http://code.google.com/p/dotnet-visualization-datasource/source/browse/trunk/Web+Services/WCFDataService/JSONPSupportBehavior.cs?spec=svn84&r=84) для примера кода , – mdm20

ответ

9

Служба данных WCF поддерживает JSON из коробки, нет необходимости добавлять атрибуты или что-то еще.

Для получения ответа в формате JSON клиенты используют стандартное согласование типа HTTP-контента.

В частности, они должны включать application/json в заголовок accept запроса.

В этом разделе представлены примеры из OData protocol documentation.

Эти примеры показывают необработанные HTTP-запросы. Различные клиентские HTTP API имеют разные механизмы для указания заголовков запросов.

Атрибут JSONPSupportBehavior является примером расширения, который позволяет клиентам использовать параметр строки URL-запроса (т.е. $format=json) в дополнение к контент-типа переговоров, а также добавляет поддержку «JSONP» (т.е. $callback=[function-name]).

Они полезны в ситуациях, когда вы не контролируете заголовки, например, при междоменном доступе через теги скриптов.

Если вы хотите использовать JSONPSupportBehavior вы можете получить его здесь:

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

+0

YEs, я был на ссылку, которую вы предоставили, но пропустил ссылку для загрузки, в которой был файл класса. благодаря – SevilNatas

0

WCF не только suppors JSON вне коробки, но он также поддерживает JSONP вне в- если вы используете WCF WebApi (предварительный просмотр 6). Получить в VS 2010 с NuGet. После того, как вы его установили, посмотрите here для получения дополнительной информации.

2

Новые версии WCF Data Services для поддержки JSON по умолчанию, и вы должны иметь

Accept: application/json;odata=verbose 

в заголовке запроса.

Accept: application/json 

больше не достаточно. Подробнее here.