react反向代理使用http-proxy-middleware問(wèn)題
簡(jiǎn)介
http-proxy-middleware用于后臺(tái)將請(qǐng)求轉(zhuǎn)發(fā)給其它服務(wù)器。
安裝
$ npm install --save-dev http-proxy-middleware
使用
在src同級(jí)目錄創(chuàng)建setupProxy.js 如圖所示
const { createProxyMiddleware } = require('http-proxy-middleware'); //注意寫(xiě)法,這是1.0以后的版本,最好按抄
module.exports = function (app) {
app.use(createProxyMiddleware('/api',
{
target: 'http://ip:8000/',
pathRewrite: {
'^/api': '',
},
changeOrigin: true,
secure: false, // 是否驗(yàn)證證書(shū)
ws: true, // 啟用websocket
}
));
};以上表達(dá)的意思是,把/api 代理到 http://ip:8000/ 到這個(gè)網(wǎng)址上,重寫(xiě)一定要,如果不寫(xiě)
pathRewrite: {
'^/api': '',
},會(huì)異常,會(huì)直接代理到http://ip:8000/api上去了,不是我們要的結(jié)果
測(cè)試
handle_click = ()=>{
let t = this;
fetch("/api/org/all", {method: 'GET'}).then(
function (res) {
console.log(res);
res.json().then(function (data) {
console.log(data);
t.setState({
news:data
});
}
)
});
};其中/api/org/all 表達(dá)的網(wǎng)址的數(shù)據(jù)是
{
"total": 1,
"list": [{
"id": "64",
"name": "湖南長(zhǎng)沙",
"code": "hncs",
"type": "試裝"
}],
"pageNum": 1,
"pageSize": 10,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [1],
"navigateFirstPage": 1,
"navigateLastPage": 1,
"firstPage": 1,
"lastPage": 1
}
完整代碼。
其中用到了antd mobile的東西,選擇重要的看即可
import React, {Component} from 'react';
import { Picker, List, WhiteSpace } from 'antd-mobile';
import { createForm } from 'rc-form';
const prjList = [
{
label: "柳州項(xiàng)目",
value: '1',
},
{
label: "南寧項(xiàng)目",
value: '2',
},
];
class Add extends React.Component {
state = {
prjList: [],
cols: 1,
pickerValue: [],
asyncValue: [],
visible: false,
colorValue: ['#00FF00'],
};
onChangeColor = (color) => {
this.setState({
colorValue: color,
});
};
handle_click = ()=>{
let t = this;
fetch("/api/org/all", {method: 'GET'}).then(
function (res) {
console.log(res);
res.json().then(function (data) {
console.log(data);
t.setState({
news:data
});
}
)
});
};
render() {
const { getFieldProps } = this.props.form;
return (<div>
<WhiteSpace size="lg" />
<List style={{ backgroundColor: 'white' }} className="picker-list">
<Picker
data={prjList}
value={this.state.colorValue}
cols={1}
onChange={this.onChangeColor}
>
<List.Item arrow="horizontal">選擇項(xiàng)目</List.Item>
</Picker>
</List>
<WhiteSpace size="lg" />
<button onClick={this.handle_click}>button</button>
</div>);
}
}
const Wrapper = createForm()(Add);
export default class OrderAdd extends Component {
render() {
return (
<Wrapper />
)
}
}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
React中引入less、less-loader問(wèn)題
這篇文章主要介紹了React中引入less、less-loader問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
詳解vant2 自動(dòng)檢查表單驗(yàn)證 -validate
這篇文章主要介紹了vant2 自動(dòng)檢查表單驗(yàn)證 -validate,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
React Native開(kāi)發(fā)封裝Toast與加載Loading組件示例
這篇文章主要介紹了React Native開(kāi)發(fā)封裝Toast與加載Loading組件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
詳解React如何實(shí)現(xiàn)代碼分割Code Splitting
這篇文章主要為大家介紹了React如何實(shí)現(xiàn)代碼分割Code Splitting示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
優(yōu)雅的在React項(xiàng)目中使用Redux的方法
這篇文章主要介紹了優(yōu)雅的在React項(xiàng)目中使用Redux的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
react中使用redux-persist做持久化儲(chǔ)存的過(guò)程記錄
這篇文章主要介紹了react中使用redux-persist做持久化儲(chǔ)存的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01

