我正在使用Webpack捆绑我的javascript代码并在浏览器中使用模块。
我正在尝试获取网址(http://www.redbubble.com);但是,我收到以下错误:
XMLHttpRequest cannot load http://www.redbubble.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
这是我捆绑的代码,并且我要求获取http://www.redbubble.com的正文html(包括在脚本标记引用下的我的ejs中)
var request = require('request');
var options = {
url: 'http://www.redbubble.com',
withCredentials: false
};
function callback(error, response, body) {
window.console.log("callback is being called");
if (!error && response.statusCode == 200) {
alert(body);
} else {
window.console.log(error);
}
}
request(options, callback);
我也在尝试使用 app.js 中的CORS模块解决Acces-Control-Allow-Origin
错误,但这并不好。
app.use(cors({
"origin": "*",
"methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
"preflightContinue": false
}));
为什么这个错误仍然存在?它怎么解决?
答案 0 :(得分:-1)
我猜你在这样的方法中缺少OTIONS:
app.use(cors({
"origin": "*",
"methods": "GET,HEAD,PUT,PATCH,POST,DELETE, OPTIONS",
"preflightContinue": false
}));
您可以在此处找到您需要的原因:Understanding cors 您需要使OPTIONS方法可用,因为它在服务器和客户端之间用于协商呼叫。