如何从webforms应用程序中使用Web API服务?

时间:2015-09-15 20:14:43

标签: 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);

        });
}

并且控制器是一个简单的字符串返回操作。

[HttpGet]
public string TestText()
{
    return "this is a text";
}

当我尝试调用该服务时出现404错误,无法找到以下链接      http://localhost:1234/MyAspxProj/MyFolder/MyPage/api/SiteUsers

我可以理解这可能是因为它试图从webforms应用程序中找到资源。我该如何调用web api服务?我对所有建议和建议持开放态度。

2 个答案:

答案 0 :(得分:3)

假设您的API托管在localhost:1111上,而您的webforms应用程序托管在localhost:2222

首先确保您可以通过以下方式获取刚刚创建的API的结果:

本地主机:1111 / API / SiteUsers

一旦您确定上述网址返回了您的预期,就可以确保您的API设置正确。

现在让我们来看看下一个问题,从另一个应用程序访问API(即没有与API相同的主机,即localhost2222)

要从另一个域上的应用程序访问API,您需要在WebAPI上启用CORS支持。互联网上有一些manay资源可以解释你如何实现这一目标:google for enabling cors in web api 2

在您的web api项目上设置CORS后,您就可以从任何应用程序访问您的API。

请记住:如果客户端位于不同的域上且客户端是基于Web的客户端(在您的情况下是Web表单应用程序),则只需启用CORS

我希望这会给你一些指导。

答案 1 :(得分:0)

根据您提供的信息,我认为您并没有输入正确的网址。假设你的[HttpGet]函数位于" api / SiteUsers"的文件中,你可以使用这样的URL:" api / SiteUsers / TestText"