当我收到来自网址的请求时,请执行以下操作:
$http({ method: 'GET', url:'http://mooc-lms.dev.web.nd/v0.3/users/login' }).success(function(data, status, headers, config) { //code });
但我得到的错误是:
GET http://mooc-lms.dev.web.nd/v0.3/users/login 405 (Method Not Allowed)
但是,如果我将方法从“GET”更改为“POST”,则错误为:
POST http://mooc-lms.dev.web.nd/v0.3/users/login 415 (Unsupported Media Type)
问题是什么?网址(http://mooc-lms.dev.web.nd/v0.3/users/login)有问题吗?我在网址中找到了“”消息“:”请求方法'GET'不支持“。
答案 0 :(得分:5)
GET
不起作用的原因是服务器不支持登录端点GET
,这并不令人惊讶。获得HTTP 415
请求POST
响应的最常见原因是服务器要求您在请求标头中指定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 */
}
})