我开发了一个使用实体框架的.Net Webapi,并且所有功能都正常使用uri ... // mywebserver / webappfolder / api / mycontroller?val = 1& val = 2& val = 3
EF和API在同一个项目中。
此时不需要自定义客户端应用程序,将此uri输入到我的本地PC浏览器中,我得到了预期的JSON或XML结果。所以我假设我可以开始编写一个客户端来在我的开发盒上使用WebAPI并在“// mydeveloperserver /...”
上运行它$(document).ready(function () {
$('#button').click(function () {
alert('Hello. This works');
$.get('http://mywebserver/webappfolder/api/mycontroller', function (data) {
$.each(data, function (n, val) {
$('#OutputDiv').add(n + ':Dedication ' + val.DedicationName);
});
});
});
});
JQuery / AJAX无法填充回调函数的结果,即使我可以看到使用Fiddler成功生成并返回请求。
在深入了解文档后,我意识到客户端消费应用程序必须在相同 Web服务器上运行“// mywebserver / ...”作为WebAPI,并且一旦JQuery / AJAX客户端Web应用程序被运行移动到“mywebserver”后,回调函数按预期填充了JSON结果。 以上代码现在有效
我们在其他服务器上使用网站应用程序和.Net Windows窗体应用程序,我想用它来调用WebAPI并使用该数据而不会影响安全性。如何从我的开发人员框Web应用程序调用在生产服务器上运行的WebAPI。我是否需要在WebAPI服务器上安装另一层代码以允许我从其他地方使用该数据?
答案 0 :(得分:0)
根据Ajay的评论,您需要启用CORS。为此,请下载以下Nuget package(N.B.这是预发行版/测试版,但它来自Microsoft产品团队)。
有关背景信息以及有关如何使用此软件包的详细信息,请参阅手册here。