AngularJS:$http.get 405(不允许的方法)
Posted
技术标签:
【中文标题】AngularJS:$http.get 405(不允许的方法)【英文标题】:AngularJS: $http.get 405 (Method Not Allowed) 【发布时间】:2015-11-02 03:28:06 【问题描述】:当我收到来自 url 的请求时,像这样:
$http( 方法:'GET', 网址:'http://mooc-lms.dev.web.nd/v0.3/users/login' ).success(function(data, status, headers, config) //代码 );但我得到的错误是:
GET http://mooc-lms.dev.web.nd/v0.3/users/login 405(方法不允许)但是,如果我将方法从“GET”更改为“POST”,错误是:
POST http://mooc-lms.dev.web.nd/v0.3/users/login 415(不支持的媒体类型)有什么问题?url(http://mooc-lms.dev.web.nd/v0.3/users/login) 有问题吗?我在 url 中找到 '"message":"Request method 'GET' not supported"'。
【问题讨论】:
如果你有这个错误,可能是因为你的服务器没有在这个url上实现任何GET
方法。
向我们展示您的后端(不,那不脏),我们只需要看看您的请求应该做什么。也许你还没有实现它?
【参考方案1】:
GET
不起作用的原因是服务器不支持登录端点的GET
,这不足为奇。在POST
请求上获得HTTP 415
响应的最常见原因是服务器要求您在请求标头中指定Content-Type
和/或Accept
。
我下面的示例将它们设置为application/json
,这很常见,但并不普遍,因此您必须检查服务器需要什么,以及它会给您什么。鉴于该地址包含“mooc-lms”,我假设您正在学习某种在线课程。它应该为您提供该信息。该文档还应该告诉您需要使用 data 属性发送哪些数据。
$http(
method: 'POST',
url: 'http://mooc-lms.dev.web.nd/v0.3/users/login',
headers:
'Content-Type': 'application/json', /*or whatever type is relevant */
'Accept': 'application/json' /* ditto */
,
data:
/* You probably need to send some data if you plan to log in */
)
【讨论】:
我遇到了类似的错误。我尝试了您的解决方案,但它对我不起作用。如果我直接在 url 栏中或通过 REST 客户端输入 URL,则 URL 会给出响应,我也会在响应中获取数据。我的服务器设置为Access-Control-Allow-Origin: *
Access-Control-Allow-Origin
标头仅影响CORS。那是完全不同的事情。听起来你不应该发帖。如果您通过 URL 栏访问您的资源并获得您想要的,听起来您只是在获取。以上是关于AngularJS:$http.get 405(不允许的方法)的主要内容,如果未能解决你的问题,请参考以下文章
405 方法不允许使用 $http 服务 AngularJS
AngularJS、REST、C# 服务、405 - 不允许发布方法
URLrewrite后不允许AngularJS / c#WebAPI 405方法