【发布时间】:2017-07-02 20:17:01
【问题描述】:
尝试为客户端应用程序创建服务器端 API。客户端完全写在反应上。在开发中使用端口 3000 上的 webdevserver。服务器正在侦听端口 3001。
我已将代理添加到客户端应用程序的package.json 文件中,如下所示:
{
"name": "client",
"version": "0.1.0",
"private": true,
"devDependencies": {
"react-scripts": "0.8.5"
},
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^3.0.2",
"superagent": "^3.4.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:3001/"
}
但一旦我请求服务器 API,它就会失败:
import Request from 'superagent';
export function searchTasks(text, callback) {
Request.get('http://localhost:3000/api/v1/tasks', response => {
callback(response.body.Search);
})
}
响应对象为空。如果我尝试使用 3001 端口请求 API - 一切正常。似乎 web-dev-server 没有代理请求,或者我错过了一些额外的配置选项?
【问题讨论】:
-
您是否按照docs 的建议尝试改用
/api/v1/tasks?另外,我注意到您使用的是superagent而不是fetchapi - 切换到后者可能会有所帮助。 -
试过不同的网址,但同样的问题
-
如何将您的
proxy更改为http://localhost:3001(丢失最后一个/)? -
也尝试过,但没有成功
-
关于 fetch:尝试使用它,但是一旦我安装了 fetch 并尝试使用它,就会出现很多错误。突然间漏掉了很多库,比如 net、dgram、tap 等。不知道这是什么。
标签: javascript node.js reactjs create-react-app react-fullstack