express转发请求后仍然跨域吗?

发布于 2022-09-11 17:29:52 字数 1627 浏览 15 评论 0

问题描述

请求第三方接口,用node 、express、 http-proxy-middleware搭建转发请求的服务器。
前端用fetch发请求。有些接口可以访问,有些接口却仍然提示跨域。
图片描述图片描述图片描述

Q:

为什么会这样,如果直接在浏览器请求服务器转发 是可以正常获取数据。但用fetch发请求就提示跨域。
···
fetch的一些配置:

const getFetch =(url)=> {
    try {
      let result = fetch(url, {
        // credentials: "omit",
        // 'Content-Type': "application/json;charset=utf-8",
        // headers: {
        //   "Access-Control-Allow-Origin": "*",
          // Accept: "application/json, text/plain, */*"
          // 'Content-Type': "application/json;charset=utf-8"
        // },
        // mode: "cors" 
      })
      return result.then(res=>res.json());
    }catch(err){
      console.error(err)
    }
}
const postFetch =(url,data)=> {

  let obj2params = (obj) => {

    let item, result = ''

    for ( item in obj ) {
      result += '&' + item + '=' + encodeURIComponent(obj[item]);
    }
    if (result) {
      result = result.slice(1);
    }
    return result;
  }
  
  try {
    let result = fetch(url, {
      method: 'POST',
      credentials: 'omit', 
      headers: {
        'Accept': 'application/json, text/plain, */*',
        'Content-Type': 'application/json'
      },
      // body: obj2params(data)
      body: JSON.stringify(data)
    });
    return result.then(res=>res.json());

  }catch(err) {
    console.error(err);
  }
}

浏览器正常请求

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

银河中√捞星星 2022-09-18 17:29:52

Access-Control-Allow-Origin
浏览器的确发出了请求,只有当目标页面的response中,包含了 Access-Control-Allow-Origin 这个header,并且它的值里有我们自己的域名时,浏览器才允许我们拿到它页面的数据进行下一步处理。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文