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

hol*_*ton 0 http http-status-code-405 angularjs

当我从网址获得请求时,如下所示:


    $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'不支持".

mir*_*han 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 */
    }
})
Run Code Online (Sandbox Code Playgroud)