【发布时间】:2018-04-19 05:47:02
【问题描述】:
我有一个版本 4 的 Angular 应用程序。我有一个节点服务器。发布表单后,我收到了标题中提到的错误。
无法加载http://localhost:3100/postEmployee:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:3000' 因此不允许访问
Node Server 的代码如下:-
var http=require('http');
var formidable=require('formidable');
var util=require('util');
var server=http.createServer(function(req,res){
res.setHeader('Access-Control-Allow-Origion','*');
res.setHeader('Access-Control-Allow-Headers',
'Origion, X-Requested-With,Content-Type,Accept');
if(req.method.toLowerCase( )== 'post')
{
processForm(req,res);
}
res.end();
});
function processForm(req,res){
console.log('Inside processForm');
var form=new formidable.IncomingForm();
form.parse(req,function(err,fields){
res.writeHead(200,{
'content-type':'text\plain'
});
res.end(unil,inspect({
fields:fields
}));
console.log('posted fields\n');
console.log(util.inspect({
fields:fields
}));
})
}
var port=3100;
server.listen(port);
console.log("server listening on port " + port);
我可以在命令提示符下看到服务器正在运行并正在侦听端口 3100。
我尝试了一些与修复 chrome 相关的 chrome,但同样不起作用。
以下是发布表单的服务中的代码:-
postEmployeeForm(employee : Employee) : Observable<any>{
let body=JSON.stringify(employee);
let headers=new Headers({'Content-Type':'application/json'});
let options= new RequestOptions({headers:headers});
return this.http.post("http://localhost:3100/postEmployee"
,body,options)
.map(this.extractData)
.catch(this.handleError);
//console.log('posting employee : ' + JSON.stringify(employee));
}
任何指针都会有所帮助。
提前致谢。
西德
【问题讨论】:
-
您在几个地方有错字:
Access-Control-Allow-Origion应该是Access-Control-Allow-Origin。
标签: angular