C # WCF Web API + JSONP - PullRequest
       11

C # WCF Web API + JSONP

2 голосов
/ 24 июля 2011

Есть ли простой способ заставить JSONP работать с новыми службами отдыха WCF Web API?

Я попробовал это без удачи

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name=""
                      helpEnabled="true"
                      automaticFormatSelectionEnabled="true"
                      defaultOutgoingResponseFormat ="Json"
                      crossDomainScriptAccessEnabled="true"/>
  </webHttpEndpoint>
</standardEndpoints>

Ответы [ 4 ]

3 голосов
/ 24 июля 2011

Вы можете проверить следующую запись в блоге для использования JSONP с WCF в .NET 4.0.

2 голосов
/ 27 июля 2011

https://alexanderzeitler.com/articles/Look-Ma,-I-can-handle-JSONP-%28aka-Cross-Domain-JSON%29-with-WCF-Web-API-and-jQuery!/

Обновление: последние версии API веб-интерфейса WCF поставляются с интегрированной поддержкой JSONP, тогда как использование почти аналогично описанному в ссылке выше.

1 голос
/ 24 января 2012

Просто хотел предоставить более подробную информацию о встроенной поддержке WCAP WebAPI для JSONP. Мне было очень трудно найти эту информацию, так что, возможно, она поможет кому-то еще ...

В этой теме в CodePlex WCF есть описание Дэниэла Рота о том, как использовать междоменные запросы JSON WebApi (a.k.a JSONP) с использованием jQuery.

«Образец», на который он ссылается, можно найти в репозитории WCF CodePlex здесь . Он находится в папке «по умолчанию».

Кроме того, убедитесь, что вы устанавливаете WebApiEnhancements для Preview 6, используя NuGet, иначе ничего из этого не будет работать.

Вам понадобится файл Global.asax.cs с чем-то вроде следующего ...

public class Global : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        var config = new WebApiConfiguration() { EnableTestClient = true };
        RouteTable.Routes.MapServiceRoute<HelloWorldApi>("api", config);
    }
}

Другим ключом является учет "расширения" в шаблоне URI ...

[WebGet(UriTemplate="hello{ext}")]

Затем вы делаете свой вызов jQuery следующим образом ...

$.getJSON("/api/hello.jsonp?callback=?", function (data) {
    $("div").html(data);
}); 
0 голосов
/ 24 ноября 2011

Вот еще одно сообщение в блоге , в котором описано, как добавить JsonpFormatter в проект.

...