Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法从本地主机连接到另一个本地主机_Javascript_Reactjs_Api - Fatal编程技术网

Javascript Can';无法从本地主机连接到另一个本地主机

Javascript Can';无法从本地主机连接到另一个本地主机,javascript,reactjs,api,Javascript,Reactjs,Api,我有以下问题: 我有一个在localhost:3001上运行的api和一个在localhost:3000上运行的react应用程序。我可以向邮递员提出请求,但当我使用我的网站时,我会出现以下错误: CORS策略已阻止从源“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头 我做了一些研究,但没有一个奏效 根据网站,我需要xhr.withCredentials=true。但这也不行。 下面是我的应用程序中的一些代码 func

我有以下问题: 我有一个在localhost:3001上运行的api和一个在localhost:3000上运行的react应用程序。我可以向邮递员提出请求,但当我使用我的网站时,我会出现以下错误:

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头

我做了一些研究,但没有一个奏效

根据网站,我需要xhr.withCredentials=true。但这也不行。 下面是我的应用程序中的一些代码

function postAjax(method, apiUrl, data, callback) {
  let xhr = new XMLHttpRequest();
  xhr.open(method, apiUrl, true);
  xhr.setRequestHeader("Content-Type", "application/json");
  xhr.withCredentials = true;
  xhr.addEventListener("load", function() {
    if (xhr.status != 400 && xhr.status != 404) {
      callback(JSON.parse(xhr.responseText));
    }
  });
  xhr.send(JSON.stringify(data));
}

有人知道如何解决这个问题吗?原因是什么?如果可能的话,使用一点示例代码

您可以在服务器中使用cors模块。 npm i cors安装外部cors包

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

这为了澄清任何混淆,因为Postman不是浏览器,所以浏览器跨源限制不适用,这就是为什么API测试应用程序能够成功完成请求,而您的浏览器不能。假设OP实际使用的是express.js,这就是hanks!它起作用了
var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())