C# WCF Web API + JSONP

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

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

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

4 ответа

Решение

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

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

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

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

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

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

Кроме того, убедитесь, что вы устанавливаете WebApiEnhancements for 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);
}); 

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

Другие вопросы по тегам