Javascript API请求不断返回无效的HTTP状态代码405,但命令行工作
我有一个非常基本的身份验证系统。但是,我正在从另一个应用程序请求登录数据。我的angular应用程序在Javascript API请求不断返回无效的HTTP状态代码405,但命令行工作,javascript,angularjs,Javascript,Angularjs,我有一个非常基本的身份验证系统。但是,我正在从另一个应用程序请求登录数据。我的angular应用程序在3030上运行,我的身份验证应用程序在3000上运行 为了测试它是否能提前工作,我从命令行请求它 $ http post http://localhost:3000/api/v1/login user="email@email.org" password="password" { "data": { "authToken": "xxxx", "userId": "useri
3030
上运行,我的身份验证应用程序在3000
上运行
为了测试它是否能提前工作,我从命令行请求它
$ http post http://localhost:3000/api/v1/login user="email@email.org" password="password"
{
"data": {
"authToken": "xxxx",
"userId": "userid"
},
"status": "success"
}
在我的应用程序运行在端口3030
,我有一个非常简单的身份验证系统
angular.module('Auth')
.controller('LoginController', ['$scope', '$http',
function ($scope, $http) {
// same as the data from the above request
$scope.credentials = {
user: '',
password: ''
};
$scope.authenticate = function () {
$http.post('http://localhost:3000/api/v1/login', $scope.credentials)
.success(function (data, status, headers, config) {
console.log(data);
})
.error(function (data, status, headers, config) {
console.log(data);
})
}
}
]);
(以下是简化视图,以备回答)
然而,这在控制台中不断给我错误
无法加载XMLHttpRequest。无效的HTTP状态代码405
为什么这在命令行上有效,但在应用程序中不起作用?如果您在windows上,可以使用Fiddler查看http请求。。。然后,您可以看到是否真的存在差异。HTTP 405表示“不允许使用方法”。您确定您的API允许使用您正在使用的HTTP方法(本例中为POST)吗?如果您在Windows上,请使用Fiddler了解您的请求/响应的实际情况。这也是我的想法,但我确实从命令行测试了发布,效果非常好。查看资源检查器时,请求类型似乎是
OPTIONS
。。。我猜这是一个CORS的东西如果你在windows上,你可以使用Fiddler来观看http请求。。。然后,您可以看到是否真的存在差异。HTTP 405表示“不允许使用方法”。您确定您的API允许使用您正在使用的HTTP方法(本例中为POST)吗?如果您在Windows上,请使用Fiddler了解您的请求/响应的实际情况。这也是我的想法,但我确实从命令行测试了发布,效果非常好。查看资源检查器时,请求类型似乎是OPTIONS
。。。我猜是CORS的事
<form name="login" ng-submit="authenticate()">
<input name="user" type="email" ng-model="credentials.user" />
<input name="password" type="password" ng-model="credentials.password" />
</form>