C# WCF Web API + JSONP
Есть ли простой способ заставить JSONP работать с новыми службами отдыха WCF Web API?
Я попробовал это без удачи
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name=""
helpEnabled="true"
automaticFormatSelectionEnabled="true"
defaultOutgoingResponseFormat ="Json"
crossDomainScriptAccessEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
4 ответа
Обновление: последние версии 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
к проекту.