我是 ReactJS 和 UI 的新手,我想知道如何从 ReactJS 代码进行简单的基于 REST 的 POST 调用。
如果有任何示例存在,那将非常有帮助。
我是 ReactJS 和 UI 的新手,我想知道如何从 ReactJS 代码进行简单的基于 REST 的 POST 调用。
如果有任何示例存在,那将非常有帮助。
直接来自React 文档:
fetch('https://mywebsite.com/endpoint/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
firstParam: 'yourValue',
secondParam: 'yourOtherValue',
})
})
(这是发布 JSON,但您也可以这样做,例如 multipart-form。)
React 对如何进行 REST 调用并没有真正的意见。基本上你可以为这个任务选择任何你喜欢的 AJAX 库。
使用普通旧 JavaScript 的最简单方法可能是这样的:
var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
request.send(data);
在现代浏览器中,您还可以使用fetch
.
如果您有更多的组件进行 REST 调用,那么将这种逻辑放在一个可以跨组件使用的类中可能是有意义的。例如RESTClient.post(…)
另一个最近流行的软件包是:axios
安装 : npm install axios --save
简单的基于 Promise 的请求
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
你可以安装超级代理
npm install superagent --save
然后对服务器进行后期调用
import request from "../../node_modules/superagent/superagent";
request
.post('http://localhost/userLogin')
.set('Content-Type', 'application/x-www-form-urlencoded')
.send({ username: "username", password: "password" })
.end(function(err, res){
console.log(res.text);
});
从 2018 年及以后,您有一个更现代的选择,即将 async/await 合并到您的 ReactJS 应用程序中。可以使用基于 Promise 的 HTTP 客户端库,例如 axios。示例代码如下:
import axios from 'axios';
...
class Login extends Component {
constructor(props, context) {
super(props, context);
this.onLogin = this.onLogin.bind(this);
...
}
async onLogin() {
const { email, password } = this.state;
try {
const response = await axios.post('/login', { email, password });
console.log(response);
} catch (err) {
...
}
}
...
}