fetch的post传值

如果报错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;
}

}

猜你喜欢

转载自my.oschina.net/u/3647713/blog/1510288