ant-design怎么配合java后台进行数据交互

 我来答
最爱寂寞的刺猬
2017-05-01 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.3万
采纳率:66%
帮助的人:1656万
展开全部
有两种方法:

其一:

使用ajax,比如jQuery的ajax (不推荐)

npm install jQuery 之后,跟之前直接使用jQuery ajax的方法一样用即可.

其二:

使用fetch:

关于fetch的概念及解释,可自行查阅相关资料,在我这边的使用中,使用的是dva框架(see:dvajs/dva-knowledgemap), 简略来说是蚂蚁金服的前端同学为方便大家使用,基于redux + react-router + redux-saga 等进行一层轻量封装(see: dva 介绍 · Issue #1 · dvajs/dva),dva中封装了一个request.js,用于做异步请求,这里的底层即是fetch,代码见:(https://github.com/dvajs/dva-example-user-dashboard/blob/master/src/utils/request.js)

在使用过程中,注意一个问题,即fetch 默认的Content-type是text/plain;charset=UTF-8,与jQuery 默认的 ‘'application/x-www-form-urlencoded;charset=UTF-8'不一致。而常用的java web框架如Spring MVC默认识别的是表单类型,即jQuery的这种格式。

因此,有两种方法:

方法1

更改请求的Content-type:

首先,前台将 Json对象序列化为键值对“key1=xx&key2=xx”这种,比如dva中使用的 qs.stringify(params);然后再fetch请求时,加上如下参数:
追答
options.credentials = 'include';
if (options.method === 'post') {
const headers = {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
};
options.headers = {...headers, ...options.headers};
然后再调用fetch:

return fetch(url, options).......
方法2

后台指定识别json,fetch 的'Content-Type'设置为 'application/json', 数据使用JSON.stringify()序列化后传到后台,后台比如Spring MVC来说,在参数前加一个注解 @RequestBody.

另外, fetch默认不带cookie信息到后台,如果需要携带cookie信息,加上

options.credentials = 'include';
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式