AngularJS:$ http.get 405(方法不允许)

时间:2015-08-10 09:15:44

标签: angularjs http http-status-code-405

当我收到来自网址的请求时,请执行以下操作:


    $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'不支持“。

1 个答案:

答案 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 */
    }
})