首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React应用未命中代理中描述的url ( package.json文件)

React应用未命中代理中描述的url ( package.json文件)
EN

Stack Overflow用户
提问于 2018-10-30 15:08:01
回答 3查看 3.8K关注 0票数 1

我的package.json中的"proxy": "http://localhost:3001",express服务器在此端口( 3001 )上运行,但每次我点击来自react的请求时,它都会在运行react应用程序的3000端口上运行

package.json

代码语言:javascript
复制
{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "antd": "^3.10.2",
    "axios": "^0.18.0",
    "dotenv": "^6.1.0",
    "http-proxy-middleware": "^0.19.0",
    "material-ui": "^0.20.2",
    "react": "^16.5.2",
    "react-bootstrap": "^0.32.4",
    "react-dom": "^16.5.2",
    "react-form": "^3.5.6",
    "react-redux": "^5.0.4",
    "react-router-dom": "^4.3.1",
    "react-router-redux": "^5.0.0-alpha.5",
    "react-scripts": "2.0.5",
    "styled-components": "^4.0.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

setupProxy.js

代码语言:javascript
复制
const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(proxy('/api/*', { target: 'http://localhost:3001' }));
};
EN

回答 3

Stack Overflow用户

发布于 2018-10-30 15:12:42

您可以在index.js中定义端口

代码语言:javascript
复制
const PORT = 3001;

并使用

代码语言:javascript
复制
"proxy": { "/*": { "target": "http://localhost:3001" } }

在客户端package.json中

对于http-proxy-:安装软件包。创建一个名为setupProxy.js的文件,并在其中使用以下模式

代码语言:javascript
复制
const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(proxy('/', { target: 'http://localhost:3001' }));
};

记住从客户端package.json中删除旧的代理脚本代码。

票数 0
EN

Stack Overflow用户

发布于 2018-10-30 15:39:34

代码语言:javascript
复制
"proxy": {
"/services": {
  "target": "http://localhost:3001",
  "changeOrigin": true,
  "pathRewrite": {
    "^/services": ""
  }
}

}

npm重新启动

票数 0
EN

Stack Overflow用户

发布于 2020-05-18 18:33:58

如果您使用的是新版本的http-proxy-middleware ("1.X.X"),则代码可能会更改为:

代码语言:javascript
复制
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use('/console/api', createProxyMiddleware({ 
    target: 'http://localhost:8080/', 
    changeOrigin: true, 
    pathRewrite: {'^/console/api' : ''} 
  }));
};

换句话说,应该用createProxyMiddleware替换proxy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53059039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档