Asp.net mvc 4 .NET4.5ASP.NETWebAPI JSONP支持
有人知道在.net 4.5 ASP.net WEB API中是否支持即时返回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
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,...