Angular: HTTP-запрос GET - ОПЦИИ 405 (метод не разрешен) - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь сделать HTTP-запрос GET к моему API, и он возвращает OPTIONS 405 (Method Not Allowed) и

Доступ к XMLHttpRequest в 'apiurl' из источника 'http://localhost:4200' имеетбыл заблокирован политикой CORS: Ответ на запрос предварительной проверки не прошел проверку контроля доступа: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Нижемой код:

 const header = new HttpHeaders();
 const request_header = header.append('Authorization', this.token.toString());

 console.log(request_header.get('Authorization'));

 this.urlList = buildUrl('myurl/', {path: 'mypath'});

 return this.http.get(this.urlList,{headers: request_header} );

Я пытался сделать то же самое в Postman, C # Console App и в ASP.NET WebForms, он работал отлично, но в Angular я получаюошибка , упомянутая выше.У меня есть запрос HTTP GET для входа в систему также в TypeScript, который РАБОТАЕТ ОТЛИЧНО .

** Примечание: у меня нет доступа к бэкэнду, но на основе C # и Postman он работает простоотлично.

ОБНОВЛЕНИЕ: Спасибо, ребята, просто чтобы вы знали, что я в конечном итоге использовал Flask с угловым, чтобы делать запросы, и это блестяще.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Почтальон не будет иметь проблем с получением ресурса здесь.

Но так как ваш запрос от сервера Angular вызывает ошибку Cross Origin, вам нужно получить бэкэнд-набор с API, имеющим ваш адрес углового сервераустановите в заголовке Access-Control-Allow-Origin доступ к запрошенному ресурсу.

Если вы установите заголовок Access-Control-Allow-Origin с *, это позволит любому серверу получитьресурс, но он не является безопасным, поскольку любой может получить ваши ресурсы без вашего разрешения.

0 голосов
/ 14 декабря 2018

Это проблема CORS.Ваш веб-сервер, на котором размещены API-интерфейсы REST, работает в другом домене, чем веб-сервер, на котором размещены статические файлы Angular.

Убедитесь, что вы не используете Angular на локальном хосте и API-интерфейсы REST в отдельном домене или что-то подобное.В идеале вы должны запускать оба из одного домена.

Сконфигурируйте хост-сервер REST API, чтобы разрешить CORS с хост-сервера Angular (localhost).

...