我开发了一个使用实体框架的.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 返回。
在深入研究文档后,我意识到客户端消费应用程序必须在与 WebAPI相同的Web 服务器“//mywebserver/...”上运行,一旦 JQuery/AJAX 客户端 Web 应用程序移动到“mywebserver”,回调函数就会填充JSON 结果符合预期。上面的代码现在可以工作了
我们在其他服务器上有网站应用程序和 .Net Windows Forms 应用程序,我想用它们来调用 WebAPI 并在不影响安全性的情况下使用该数据。如何从开发人员盒 Web 应用程序调用在生产服务器上运行的 WebAPI。我是否需要在 WebAPI 服务器上再添加一层代码以允许我从其他地方使用该数据?