我正在使用angular 7,当我从本地机器上发布数据到web api时,它可以工作,但当我在服务器上发布相同的web api时,我可以从api获取数据,但我不能发布数据。我收到CORS错误。
WEB API在服务器端的发布面临着这样的问题。
我已经安装了CROS nuget包,但我仍然不能解决问题。
我尝试过修改web api,还安装了CORS包,还尝试过在Angular中进行代理配置,但它不起作用。
错误:“已被CORS策略阻止:请求的资源上不存在'Access-Control-Allow-Origin‘标头。”
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>发布于 2019-06-27 21:27:45
我已使用"proxy.conf.js“insted of (proxy.conf.json)文件解决了问题。在src文件夹中创建"proxy.conf.js“文件。并在"proxy.conf.js“中编写如下代码。
var HttpsProxyAgent = require('https-proxy-agent');
var proxyConfig = [{
context: '/api',
"target": "http://10.1.5.13:9007",
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);并将"angular.json“文件更改为
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "AngularTestApp:build",
"proxyConfig": "src/proxy.conf.js"
}
Run NPM start after doing all changes.发布于 2019-06-24 23:04:26
为Google Chrome浏览器下载此CORS browser extension,并在访问本地主机时启用CORS。它应该可以解决这个问题。
您可以阅读有关此错误原因的更多信息here
可能导致此问题的事情:
从本地服务的文件命中服务器的API (来自file:///YourApp/index.html的请求http://api.awesome.com)
https://stackoverflow.com/questions/56738448
复制相似问题