如何使用 AngularJS $http url 引用另一个项目中的控制器



如果 C# 控制器在同一项目中,我就是这样做的:

$http({
    method: 'GET',
    url: '/api/SomeController/SomeMethod',
    headers: { 'Content-Type': 'application/json' }

我正在构建一个SPA,所以我希望我的AngularJS和WebApi的东西在他们自己的项目中。

如果控制器位于解决方案内的另一个项目中,则如何完成?

你的网址必须与你的 Web API 网址匹配。您的问题是每次启动Web服务器时,本地主机的端口都会更改。您可以做的是设置此端口。

为此,您只需转到Web API项目的属性,选择"Web"选项卡,然后标记"使用Visual Studio部署服务器"并输入端口。

如果你使用类似"1337"的东西,你可以在Angular中进行这样的调用:

$http({
    method: 'GET',
    url: 'localhost:1337/api/SomeController/SomeMethod',
    headers: { 'Content-Type': 'application/json' }

如果真的建议你在 JavaScript 代码中的某个地方存储一个基本 URL,所以当你很快部署你的页面时,你只需要更改一个变量。

我希望这对你有帮助

您需要通知完整的网址,例如:

http://localhost:5376/api/SomeController/SomeMethod

在生产中,更改为 IP 或域。

我喜欢在我的项目中创建两个常量文件:

网址

angular.module('app')
    .constant('URL', {
        local : 'http://localhost:54341/api',
        dev : 'http://...',     
        hom : 'http://...', 
        prod : 'http://...'
    });

配置:

angular.module('app')
    .constant('CONFIG', {
        env: 'local'
    });

并像这样使用:

var url = URL[CONFIG.env] + '/anotherPath';

您可能会遇到开机自检、放置 (...) 请求的问题。如果是这样,请搜索 CORS飞行前问题。

最新更新