您好,我一直在努力使CORS
工作。我看到了this post,我想离我更近了,但是,我已经按照该帖子中指向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 } }));
}
};
答案 0 :(得分:1)
我已经研究了大约2天,在这里我遇到了多个问题。首先是我正在使用的MVC
项目需要完成一些事情。
我需要向WebConfig
文件中添加一些内容:
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
,我需要添加到GlobalApplication.cs
文件中。
private void GlobalApplication_PreRequestHandlerExecute(object sender, EventArgs e)
{
#if DEBUG
if (Request.HttpMethod == "OPTIONS")
{
Response.StatusCode = 200;
Response.End();
return;
}
#endif
}
希望这对其他人有帮助!