首页 > 解决方案 > 代理属性在 package.json 中不起作用

问题描述

我是新手,我正在尝试向 API 端点发出发布请求。我将 package.json 中的代理放在端点 url 上,这里是 fetch 函数:

const requestOptions = {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    username: username,
    password: password,
  }),
};

const res = await fetch("/token", requestOptions);

这是我的代理道具:"proxy": "https://somedomain/api/auth"

当我这样做时console.log(res.url),它总是打印“http://localhost:3000/api/auth/token/”而不是“https://somedomain/api/auth/token/”

这是为什么 ?

有什么解决办法吗?

标签: reactjsfetchpackage.json

解决方案


您需要添加Accept当前缺少的标题。标头如下所示:

headers: {
  "Content-Type": "application/json",
  "Accept": "application/json"
}

其他代理方式

  1. 您可以下载该http-proxy-middleware软件包并配置您的代理。
  2. 您可以使用webpack 代理并将您的请求发送到不同的终端服务器。
module.exports = {
  devServer: {
    proxy: {
      '/api': 'http://localhost:3000'
    }
  }
};

注意:请记住,CORS 问题会弹出,因此也要添加Access-Control-Allow-Origin标题。


推荐阅读