Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 跨源请求被阻止(原因:CORS头和访问控制允许源和不匹配);http://localhost:3000/’)_Javascript_Node.js_Json_Express_Cors - Fatal编程技术网

Javascript 跨源请求被阻止(原因:CORS头和访问控制允许源和不匹配);http://localhost:3000/’)

Javascript 跨源请求被阻止(原因:CORS头和访问控制允许源和不匹配);http://localhost:3000/’),javascript,node.js,json,express,cors,Javascript,Node.js,Json,Express,Cors,我最近试图了解CORS是如何工作的,所以我设置了2台本地服务器 检查我是否可以在它们之间交叉发送数据 localhost:3000如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE

我最近试图了解CORS是如何工作的,所以我设置了2台本地服务器 检查我是否可以在它们之间交叉发送数据

localhost:3000如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="others()">get Others data</button>
<script>
    function others(){
      fetch('http://localhost:3100/',{
        method: "POST",
        headers: {'Access-Control-Allow-Origin':'http://localhost:3000/'},
        body: JSON.stringify({stat:'good'})
      })
     .then(function(res){ return res.json(); })
     .then(function(data){ console.log(JSON.stringify( data ) ) })
    }
</script>
</body>

</html>
它的index.html如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="others()">get Others data</button>
<script>
    function others(){
      fetch('http://localhost:3100/',{
        method: "POST",
        headers: {'Access-Control-Allow-Origin':'http://localhost:3000/'},
        body: JSON.stringify({stat:'good'})
      })
     .then(function(res){ return res.json(); })
     .then(function(data){ console.log(JSON.stringify( data ) ) })
    }
</script>
</body>

</html>
但是,当我同时运行这两台服务器并从localhost:3000获取时,会显示以下错误:

我对此有点陌生。有人能解释一下我做错了什么吗?

删除原点末尾的
/

因为
http://localhost:3000
http://localhost:3000/

访问文件时,尾随斜杠将始终查找
索引
文件

因此,与此相反:

app.use(cors({
  origin: 'http://localhost:3000/'
}));
使用以下命令:

app.use(cors({
  origin: 'http://localhost:3000'
}));
删除原点末端的
/

因为
http://localhost:3000
http://localhost:3000/

访问文件时,尾随斜杠将始终查找
索引
文件

因此,与此相反:

app.use(cors({
  origin: 'http://localhost:3000/'
}));
使用以下命令:

app.use(cors({
  origin: 'http://localhost:3000'
}));

另外,您可能需要添加
http://127.0.0.1:3000
因为如果您的服务器正在设置cookies,那么
http://localhost:3000 不等于
``天哪,就这么简单?非常感谢您,您可能需要添加
http://127.0.0.1:3000
因为如果您的服务器正在设置cookies,那么
http://localhost:3000 不等于
``天哪,就这么简单?非常感谢你