Reactjs App request.get



我有一个反应js应用程序,它做一个简单的http get。它不使用 webpack 并使用 package.json

var request = require('request');
var options = {
  url: 'http://localhost:8181/api/v1/status',
  headers: {
    'Access-Control-Allow-Origin':'*'
  }
}
function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    var info = JSON.parse(body);
    console.log(info.stargazers_count + " Stars");
    console.log(info.forks_count + " Forks");
  }
}
request(options, callback);

此代码失败,我收到以下错误

本地主机/:1 无法加载 http://localhost:8181/api/v1/status:对预检请求的响应未通过访问控制检查:请求的资源上不存在"访问控制-允许源"标头。因此,不允许访问源"http://localhost:3000"。响应的 HTTP 状态代码为 405。如果不透明响应满足您的需求,请将请求的模式设置为"no-cors",以便在禁用 CORS 的情况下获取资源。

我尝试访问的服务器正在运行python,我已经附加了必要的标头来发出请求。我对反应很陌生

如何解决这个问题?

让我们分解错误消息。第一部分:

对预检请求的响应未通过访问控制检查:请求的资源上不存在"访问控制允许源"标头。

表示您的 Python 服务器未设置 Access-Control-Allow-Origin 标头。你应该确保你的 python 服务器在响应中设置了这个标头。如果这不起作用,请继续:

响应的 HTTP 状态代码为 405。

HTTP 状态代码 405 表示不允许使用方法。您的 python 服务器可能还需要设置标头:Access-Control-Allow-Methods: <method>, <method> 。因此,在包括您要允许的每个内容中,例如 GET, POST, OPTIONS .

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods

最新更新