2016-08-09 10 views
2

Угловая 2 сообщение с этой ошибкой.Ошибка при отправке сообщения в Угловой 2

do_login(username: string,password: string): Observable<string> { 
    let body = JSON.stringify({"username":username,"password":password}); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post(this.loginUrl, body, options) 
      .map((response) => { 
      return response.json(); 
      } 
    ); 
} 

Получить запрос на работу. и POST URL работает нормально при вызове на клиенте REST

enter image description here

Чего не хватает в моем коде. Спасибо за помощь.

ответ

1

Это из-за CORS. Вы не обрабатываете запрограммированные запросы на стороне сервера. Это то, что код 405 статус говорит:

405 Method Not Allowed метод запроса не поддерживается для запрошенного ресурса; например, запрос GET на форму, для которой данные должны быть представлены через POST, или запрос PUT для ресурса только для чтения.

Он работает для методов GET, потому что вы находитесь в случае простых запросов, а не предполетных. Обычно это проблема на стороне сервера, а не frontend/Angular2.

Эти статьи могут помочь вам понять, что происходит:

1

CORS участвует, так как есть OPTIONS запрос, который предшествует POST запрос.

Сервер не дает действительного ответа на запрос OPTIONS - в результате ошибки, указанной выше. Вам нужно будет исследовать конфигурацию CORS вашего сервера, так как это проблема, лежащая в основе проблемы - не в приведенном выше коде.

Если GET работает нормально, вы должны посмотреть на конфигурацию Access-Control-Allow-Methods

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