如果报错406 (Not Acceptable) 错误错误的话,说明json解析错误,
参考博客https://my.oschina.net/u/3647713/blog/1524336
1.get方式
get方式提交的话,表单项都保存在http header中,格式是
http://localhost:8080/hello.do?name1=value1&name2=value2这样的字符串。
2.post方式(enctype为缺省的application/x-www-form-urlencoded)
表单数据都保存在http的正文部分。
图片未能上传;:: 查看http请求,可以看出未设置Content-Type数据存在Request payload中
设置后将存放于form data中
import fetch from 'isomorphic-fetch';
import queryString from 'queryString'
export const success = (data) => ({
type: 'login_success',
last_time:data.data,
})
// 页面初次渲染时获取数据 ES6写法
export const login_success = (user , psw) => {
return dispatch => {
fetch('http://localhost:9090/zl.zy/zy/login.do', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
},
body: queryString.stringify({ 'user': user ,'psw' :psw })
//用queryString转化,之前用JSON转化不行
})
.then((response) => {
debugger
if(response.ok){
return response.json();
}
})
.then(data=>
dispatch(success(data)))
}
}
ES7写法
// 页面初次渲染时获取数据
export const login_success = (user , psw) =>
async (dispatch) => {
try {
let response = await fetch('http://localhost:9090/zl.zy/zy/login.do', {
credentials: 'include',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
},
body: queryString.stringify({ 'user': user ,'psw' :psw })
})
if(response.ok){
let data = await response.json();
await dispatch(success(data))
console.log('login')
}
}catch(error){
console.log('error: ', error)
}
}
java后台
@Controller
@RequestMapping("/zy")
public class LoginControl {
private static final SimpleLogger LOGGER = SimpleLogger
.getLogger(LoginControl.class);
@RequestMapping(value="/login", method = RequestMethod.POST)
@ResponseBody
public Map login(HttpServletRequest req , HttpServletResponse res){
System.out.println("---------------------");
System.out.println(req.getParameter("user"));
System.out.println(req.getParameter("psw"));
Map map = new HashMap();
map.put("data", "success");
return map;
}
}