使用Webpack创建CORS客户端请求 - Node.JS

时间:2016-11-30 08:31:48

标签: javascript node.js express webpack cors

我正在使用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
})); 

为什么这个错误仍然存​​在?它怎么解决?

1 个答案:

答案 0 :(得分:-1)

我猜你在这样的方法中缺少OTIONS:

app.use(cors({
  "origin": "*",
  "methods": "GET,HEAD,PUT,PATCH,POST,DELETE, OPTIONS",
  "preflightContinue": false
})); 

您可以在此处找到您需要的原因:Understanding cors 您需要使OPTIONS方法可用,因为它在服务器和客户端之间用于协商呼叫。