Asp.net mvc 4 .NET4.5ASP.NETWebAPI JSONP支持

Asp.net mvc 4 .NET4.5ASP.NETWebAPI JSONP支持,asp.net-mvc-4,asp.net-web-api,.net-4.5,Asp.net Mvc 4,Asp.net Web Api,.net 4.5,有人知道在.net 4.5 ASP.net WEB API中是否支持即时返回JSONP 我发现在早期版本的MVC或.net中有很多“自己动手”的功能,但似乎没有针对更高版本的功能 我意识到这可能是因为早期版本将使用.net 4.5堆栈,但我很好奇是否有人已经加入了。据我所知,您必须获得jsonp格式化程序。 以下是其中一个实现: 更新 WebApiContrib团队现在提供了推荐的软件包: 在应用程序启动时将其添加到Global.asax: GlobalConfiguration.Confi

有人知道在.net 4.5 ASP.net WEB API中是否支持即时返回
JSONP

我发现在早期版本的
MVC
或.net中有很多“自己动手”的功能,但似乎没有针对更高版本的功能


我意识到这可能是因为早期版本将使用.net 4.5堆栈,但我很好奇是否有人已经加入了。据我所知,您必须获得jsonp格式化程序。 以下是其中一个实现:

更新

WebApiContrib团队现在提供了推荐的软件包:

在应用程序启动时将其添加到Global.asax:

GlobalConfiguration.Configuration.Formatters.Insert(0,  new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));
jquery的使用示例可以在

中找到,我喜欢这个NuGet包

将此格式化程序添加到
应用程序\u Start

GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));

最后我还使用了WebApiContrib.Formating.Jsonp NuGet包,但如果没有回调参数,则可以在不填充的情况下重新运行Json

因此,如果回调参数是我提供的,那么只有Jsonp

通过将(从howTo)添加到Global.asax.cs-Application_Start()中


这是我发现的第一篇文章,也是最有帮助的,但它仍然留下了一些问题,我发现一些答案有一些问题,虽然我能够使它工作,因为所有的答案,我想添加我学到的东西,因为它似乎在搜索回报率很高。
我安装了,并能够得到它的工作后,我添加

GlobalConfiguration.Configuration.Formatters.Insert(0,  new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));
对于应用程序startas上的my Global.asax,Alex Wheat和mbudnik回答说,这导致CORS停止处理我的API中已经实现的其他部分

我现在可以正常工作了,并从包开发人员的github中找到了一些东西

安装nuget软件包之后, 将以下内容添加到Global.asax文件中

GlobalConfiguration.Configuration.AddJsonpFormatter();
然后,如果您使用下面的Jquery调用服务,只需将url替换为您的url,您就可以在控制台中看到结果。我还建议安装Fiddler Web调试器,因为它将帮助您进行故障排除

$.ajax({
    url: 'http://jsfiddle.net/echo/jsonp/',
   type: 'GET',
    contentType: 'text/javascript',
    crossDomain: true,
    success: function(data) {
        console.log(data);
    },
    error: function(jqXHR,status,error) {
    console.log(error);
    }
});
内容类型:“text/javascript”很重要。这就是告诉web api使用Jsonp格式化程序的原因

不要包含“jsonp”的数据类型-下面的示例

     ...type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,... 

这将导致web api使用JsonMediaTypeFormatter,您将得到“jQueryrandomfunctionstring未调用parsererror”错误。我从个人的试错中知道这一点。希望这能帮助其他人

谢谢,我遇到了同样的问题,这就解决了。我在互联网上看到,与JSON相比,jsonp在文档方面有点轻。除了在文章中找到的链接之外,还有哪些链接是您认为适合实现的?JSONP实际上是一个JSON对象,但它被包装在客户端指定的Javascript函数调用(回调参数)中。我认为没有必要为它提供任何文档。它只使用格式化程序和任何支持jsonp的javascript库(如jQuery)工作。我发现一个Stackoverflow帖子,上面有人详细解释了这一点:。还更新了我的答案与新的建议包到现在为止。
     ...type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,...