我在一个包含多个项目的大解决方案文件夹中有一个 webforms 应用程序。我想使用一个 web api 应用程序,它也是解决方案的一部分。所以我的客户看起来如下。
function GetText()
{
$.getJSON("api/SiteUsers",
function (data) {
$("#TestText").append(data);
});
}
Controller 是一个简单的字符串返回操作。
[HttpGet]
public string TestText()
{
return "this is a text";
}
当我尝试调用该服务时出现 404 错误,无法找到以下链接 http://localhost:1234/MyAspxProj/MyFolder/MyPage/api/SiteUsers
我能理解这可能是因为它试图从 webforms 应用程序中查找资源。如何调用 web api 服务?我乐于接受所有建议和建议。
最佳答案
假设您的 API 托管在 localhost:1111 上,而您的 webforms 应用程序托管在 localhost:2222 上
首先确保您可以获得刚刚创建的 API 的结果,方法是:
localhost:1111/api/SiteUsers
一旦您确定上述 URL 返回您所期望的内容,您就可以确定您的 API 设置正确。
现在让我们来看下一个问题,从另一个应用程序访问 API(即与 API 不具有相同的主机,即 localhost2222)
要从另一个域上的应用程序访问 API,您需要在 WebAPI 上启用 CORS 支持。互联网上有许多资源可以向您解释如何实现这一目标:google for enabling cors in web api 2
在您的 Web API 项目上设置 CORS 后,您将能够从任何应用程序访问您的 API。
请记住:如果客户端位于不同的域并且客户端是基于 Web 的客户端(在您的情况下是 Web 表单应用程序),您只需要启用 CORS
我希望这能给你一些指导。
关于c# - 如何从 webforms 应用程序中使用 web API 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594821/