Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 FetchAPI。我从自己的express服务器得到一个空字符串_Javascript_Node.js_Express_Fetch - Fatal编程技术网

Javascript FetchAPI。我从自己的express服务器得到一个空字符串

Javascript FetchAPI。我从自己的express服务器得到一个空字符串,javascript,node.js,express,fetch,Javascript,Node.js,Express,Fetch,我已经在4000端口上设置了一个express.js服务器。获取请求并发送纯文本字符串 let express = require("express"); const app = express(); const port = 4000; app.listen(port, () => { console.log(`SERVER is running on port ${port}`)}); app.use(express.text()); app.get("/", (req,res)

我已经在4000端口上设置了一个express.js服务器。获取请求并发送纯文本字符串

let express = require("express");
const app = express();
const port = 4000;

app.listen(port, () => { console.log(`SERVER is running on port ${port}`)});

app.use(express.text());

app.get("/", (req,res) =>{
   console.log("Get from /");
   res.send("Hello world");
});
我正在尝试使用fetchApi获取字符串“helloworld”

window.onload = ()=>{
  fetch("http://127.0.0.1:4000/", {
      method: "GET",
      mode: "no-cors"
  }).then(res=>{
      return res.text();
  }).then( text => {
      console.log(text);
  });
};
我在控制台中得到一个空字符串,但当我打开网络发送请求时,我会在网络响应中看到消息

你说:

这意味着“我不会做任何需要服务器授予CORS权限的事情,因此如果我没有该权限,请不要在控制台中填充错误”

由于跨源读取响应需要CORS的权限,并且您说不需要权限,因此当您尝试读取响应时,会返回一个空字符串


如果要读取响应,则需要CORS,因此请退出
模式
配置。

如果使用的是最新版本的Express
,请尝试此代码,而不需要Express.text():

然后:

window.onload = ()=>{ fetch("http://127.0.0.1:4000/", { method: "GET"}).then(res=>{ return res }).then( text => { console.log(text); }); };

这有助于我``app.use(函数(req,res,next){res.header(“访问控制允许来源”);res.header(“访问控制允许来源”,“来源,X请求的内容类型,接受”);next();})“``@Alexander-使用NPM的
cors
模块,而不是滚动你自己的模块。不要允许你不需要的随机请求头。
Access Control allow headers
不应该出现在请求上。
Origin
不需要权限。
X-request-With
是一个丑陋的黑客行为,请求应该使用
Accept
相反,
内容类型
不应存在于GET请求中。
 const express = require("express");
 const app = express();
 const port = 4000;
 app.listen(port, () => { console.log(`SERVER is running on port ${port}`)}); 
 app.get("/", (req,res) =>{ console.log("Get from /"); res.send("Hello world") });
window.onload = ()=>{ fetch("http://127.0.0.1:4000/", { method: "GET"}).then(res=>{ return res }).then( text => { console.log(text); }); };