我在vb.NET中创建了一个MVC网站,它在本地服务器上运行得非常好。 我已使用Visual Studio的Publish方法将其发布到远程服务器,因此我相信所有必需的文件都应该放在远程服务器上。 Web托管服务运行MVC 4和5.在从远程服务器运行页面时,AngularJS代码无法找到VB控制器。
在AngularJS服务部分,代码为:
this.getPasswords = function () {
return $http.get("api/passwords");
};
在AngularJS控制器部分中,相关代码为:
getPasswords();
// get from passwordsController.vb
function getPasswords() {
passwordService.getPasswords()
.success(function (passwords) {
$scope.passwords = passwords;
})
.error(function (error) {
$scope.status = 'Error in getting passwords: ' + error.message;
});
};
VB控制器代码是:
' GET: api/passwords
Function Getpasswords() As IQueryable(Of password)
Return db.passwords
End Function
该行:
return $http.get("api/passwords");
不与VB控制器中的Getpasswords功能连接。
非常感谢任何帮助。
答案 0 :(得分:1)
最有可能的是,这是一个网址问题。您正在调用api/passwords
,这将与正在使用的任何基道相对。例如,如果您已经使用了某个网址,例如http://example.com/foo/bar
,那么您实际请求的网址为http://example.com/foo/bar/api/passwords
,这几乎肯定是不正确的。您应该始终使用/api/passwords
之类的路径。前面的/
会导致URL与域相关,即http://example.com/api/passwords
。