2015-08-10 4 views
0

, когда я получаю запрос от URL, например:

 

    $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) 

в чем проблема есть ли что-то не так с URL (http://mooc-lms.dev.web.nd/v0.3/users/login)? Я нахожу «сообщение»: «Метод запроса« GET »не поддерживается» в URL-адресе.

+0

Если у вас есть эта ошибка, это, вероятно, потому, что на вашем сервере не реализован какой-либо метод GET. –

+1

покажите нам, что у вас есть back-end (нет, это не грязно), нам просто нужно посмотреть, что должен делать ваш запрос. возможно, вы его не реализовали? –

ответ

5

Причина, по которой GET не работает, заключается в том, что сервер не поддерживает GET для конечной точки входа, что неудивительно. Наиболее распространенной причиной получения ответа HTTP 415 на запрос POST является то, что серверу необходимо указать Content-Type и/или Accept в заголовке запроса.

Мой пример ниже устанавливает их в application/json, что является общим, но не повсеместным, поэтому вам нужно будет проверить, что требует сервер, и что он вам вернет. Учитывая, что адрес содержит «mooc-lms», я предполагаю, что вы делаете какой-то онлайн-курс. Он должен предоставить вам эту информацию. Эта документация также должна сообщить вам, какие данные вам нужно отправить с использованием свойства данных.

$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 */ 
    } 
}) 
+0

ничего себе, вы правы. И теперь это работает. Спасибо за вашу помощь! – hollton

+0

Я столкнулся с подобной ошибкой. Я попробовал ваше решение, но это не сработало для меня. URL-адрес дает ответ, если я непосредственно ввожу его в строку url или через клиент REST, также я получаю данные в ответе. Мой сервер настроен с помощью 'Access-Control-Allow-Origin: *' –

+0

Заголовок 'Access-Control-Allow-Origin' влияет только на [CORS] (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing). Это совершенно отдельная вещь. Звучит так, будто вы не должны быть POSTING. Если вы нажимаете свой ресурс через свою панель URL и получаете то, что хотите, похоже, что вы просто GETing. – mirichan

Смежные вопросы