Здравствуйте, я изо всех сил пытался заставить CORS
работать.Я увидел этот пост , который, как мне кажется, приблизил меня, однако, я перешел по ссылке в этом посте на angular.io и использовал это.
Итак, позвольте мнеобъясните мою проблему, я создаю прокси:
var HttpsProxyAgent = require('https-proxy-agent');
var proxyConfig = [{
context: '/api',
target: 'http://localhost:3000',
secure: false
}];
function setupForCorporateProxy(proxyConfig) {
var proxyServer = process.env.http_proxy || process.env.HTTP_PROXY;
if (proxyServer) {
var agent = new HttpsProxyAgent(proxyServer);
console.log('Using corporate proxy server: ' + proxyServer);
proxyConfig.forEach(function(entry) {
entry.agent = agent;
});
}
return proxyConfig;
}
module.exports = setupForCorporateProxy(proxyConfig);
, и я звоню npm start
со скриптом, похожим на: "start": "ng serve --proxy-config proxy.js"
, но я пытаюсь сделать пост, который выглядит так:
let url:string='/api/Acounts/Login';
this.http.post(url, body).subscribe(x=> x.doStuff);
Я бы ожидал, что он вызовет http://localhost:3000/Accounts/Login
, но на самом деле он вызывает http://localhost:42000/api/Accounts/Login
Так что мой вопрос: почему он вызывает неправильный адрес, и как я могу сделать так, чтобы он вызывалправильный адрес?
РЕДАКТИРОВАТЬ: Я тоже хотел добавить protractor.conf.js
.
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};