我正在尝试通过CORS与Angular和NodeJs进行跨域请求(GET,POST,DELETE ...)。当我尝试使用Chrome浏览器时,我很成功,但在Win7上的IE11上,我得到以下错误。
SEC7118: XMLHttpRequest for http://master.domain:1300/login required Cross-Origin Resource Sharing (CORS).
SEC7119: XMLHttpRequest for http://master.domain:1300/login required CORS preflight.
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
主域名我设置标题Access-Control-Allow-Origin
,因此成功使用Chrome。
我已经尝试了xdomain库但是我无法成功使用Angular。我可能会错过一些东西,但我不知道是什么。互联网上没有例子。
在IE上我可以做些什么?我可以使用除CORS之外的任何其他方式。
有任何帮助吗?
由于
答案 0 :(得分:1)
只需设置" Access-Control-Allow-Origin"标题可能不够,取决于您正在制作的请求类型。您还应该设置"访问控制 - 允许 - 方法"和"访问控制允许标题"
举个例子:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS
Access-Control-Allow-Headers: Content-Type
答案 1 :(得分:0)
只需在nodejs端尝试此代码即可
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200');
res.setHeader('Access-Control-Allow-Methods', 'POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});