Здравствуйте, я создаю приложение Angular, которое мне нужно для вызова API. Я столкнулся с ошибкой CORS. "No Access-Control-Allow-Origin", о котором я нашел в сети несколько вещей, но я все еще не понимаю, куда я должен добавить middlewhere. Интересно, может ли кто-нибудь конкретно рассказать, как заставить это работать с angular cli.
Если вы откроете командную строку и наберете ng new test, затем откройте эту тестовую папку и введите npm start. вы добавляете код для вызова API, скажем, localhost/someapi/api/people, но поскольку вы не вызываете localhost:4200, вы получаете эту ошибку.
Итак, чтобы мой вопрос был ясен, я понимаю, что вам нужно добавить середину cors на сервере. Но вопрос в том, где в приложении angular 5 я могу добавить это, чтобы узел прочитал его и позволил этому работать?
Ниже приведен код, который я использую для вызова api.
getToken():void{
let headers = new Headers({'Content-type': 'application/x-www-form-urlencoded'})
let params = new URLSearchParams();
params.append('username','some-username');
params.append('password', 'some-encripted-password');
params.append('grant_type', 'password');
let options = new RequestOptions();
options.headers = headers;
this.http
.post(this.appConfig.baseRoute + 'token',params.toString(), options)
.subscribe(result=>{ });
}
Вы имеете в виду API, который я вызываю, или приложение angular?
эта ошибка может быть по многим причинам. Если вы неправильно вызываете свой API. Это также может быть причиной такой проблемы, и если вы разрешили CORS на резервной копии, это также является причиной этой проблемы.
Я добавил код для вызова, чтобы получить токен





Заголовки CORS должны быть установлены на стороне сервера в соответствии с ответом в предоставленной вами ссылке. На стороне клиента Angular не должно быть ничего, кроме токенов аутентификации, если они требуются вашему серверу.
Чтобы упростить локальную разработку, вы можете настроить прокси для ng serve.
Добавьте этот файл в свой корень (папку с angular-cli.json)
proxy.conf.js
const PROXY_CONFIG = [
{
context: [
// what routes to proxy
"/api",
],
// your backend api server
target: "http://localhost:8000",
secure: false
}
]
module.exports = PROXY_CONFIG;
вместо вызова ng serve используйте ng serve --proxy-config proxy.conf.js
вы можете добавить свой серверный код? где вы создаете сервер с
expressили как там?