c# - 如何从 webforms 应用程序中使用 web API 服务?

标签 c# asp.net asp.net-web-api webforms asp.net-web-api2

我在一个包含多个项目的大解决方案文件夹中有一个 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/

相关文章:

c# - rest web api 返回类型的最佳实践

c# - 控制台应用程序的多个配置文件

c# - 查找未调用的代码

asp.net - 测试后 NUnit 回滚

asp.net-web-api - Spotify Auth + 前端 JavaScript + 客户端凭证流

c# - 在 c# web api 2.0 中发现多个 Controller 类型错误

c# - 如果在 C# 中该窗体发生异常,如何优雅地关闭该窗体

c# - 什么是基于实例的成员

asp.net - ScriptManager.axd 不会缓存

c# - web.config 转换不转换