如果 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 和飞行前问题。