C# WCF Web API + JSONP

发布于 2024-11-25 13:14:17 字数 464 浏览 0 评论 0 原文

有没有一种简单的方法可以让 JSONP 适用于新的 WCF Web API Rest 服务?

我试过这个但没有运气

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

Is there an easy way to get JSONP working for the new WCF Web API rest services?

I've tried this with no luck

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一江春梦 2024-12-02 13:14:17

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

You may checkout the following blog post for using JSONP with WCF in .NET 4.0.

乙白 2024-12-02 13:14:17

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

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

Update:
Latest WCF Web API bits ships with integrated JSONP support whereas usage is almost similar to the way described in the link above.

天生の放荡 2024-12-02 13:14:17

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

此线程 在 WCF CodePlex 上,Daniel Roth 提供了有关如何使用 jQuery 使用 WebApi 跨域 JSON 查询(​​又名 JSONP)的描述。

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

另外,请确保使用 NuGet 安装预览版 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);
}); 

Just wanted to provide more detail on WCF WebAPI out-of-the-box support for JSONP. I had a really hard time finding this information, so perhaps it will help somebody else...

This thread over on the WCF CodePlex has a description by Daniel Roth about how to use WebApi cross-domain JSON queries (a.k.a JSONP) using jQuery.

The "sample" he references can be found in the WCF CodePlex repository here. It is in the "default" folder.

Also, make sure you install the WebApiEnhancements for Preview 6 using NuGet otherwise none of this will work.

You'll need a Global.asax.cs with something like the following...

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

The other key is to account for an "extension" in your URI template...

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

Then you make your jQuery call like this...

$.getJSON("/api/hello.jsonp?callback=?", function (data) {
    $("div").html(data);
}); 
ら栖息 2024-12-02 13:14:17

这是另一篇博文,介绍了如何添加 JsonpFormatter 到一个项目。

Here's another blog post that describes how to add a JsonpFormatter to a project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文