2

有没有一种简单的方法可以让 JSONP 为新的 WCF Web API 休息服务工作?

我试过这个没有运气

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

4 回答 4

3

您可以查看以下博客文章,了解在 .NET 4.0 中将 JSONP 与 WCF 结合使用。

于 2011-07-23T20:59:42.600 回答
2

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 支持,而用法几乎与上面链接中描述的方式相似。

于 2011-07-26T20:08:40.533 回答
1

只是想提供更多关于 WCF WebAPI 对 JSONP 的开箱即用支持的详细信息。我很难找到这些信息,所以也许它会帮助其他人......

WCF CodePlex 上的这个线程有 Daniel Roth 关于如何使用 jQuery 使用 WebApi 跨域 JSON 查询(​​又名 JSONP)的描述。

他引用的“示例”可以在此处的 WCF CodePlex 存储库中找到。它位于“默认”文件夹中。

此外,请确保使用 NuGet 为 Preview 6 安装 WebApiEnhancements,否则这些都不起作用。

您将需要一个 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);
}); 
于 2012-01-24T16:24:20.750 回答
0

这是另一篇博客文章,描述了如何将 a 添加JsonpFormatter到项目中。

于 2011-11-24T10:46:05.053 回答