jquery ajax基本形式:
$.ajax({ type: 'POST/get', url: '', data: {"n":n,"m":m}, dataType: 'json', success: function (parameter) { // do some thing }, error: function (XMLHttpRequest, textStatus, errorThrown) { //do some thing to feedback error $("#id").html('there is something wrong!'); alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } })
最近做一个项目需要ajax,前台传值给后台,后台进行一些操作,因为一些原因后台没有办法收到数值,才发现原来是contenttype 的原因。
contenttype的默认值是application/x-www-form-urlencoded,我写成了application/json,导致没有办法接收数据。
application/json是后台返回的mime类型,不是前台提交的方式。
客户端提交的contentType只能为application/x-www-form-urlencoded 或者 multipart/form-data
我们后台用的Java,发现如果contenttype为application/json的话,后台写成这样就可以了。
@RequestMapping(value = "/sk/api/params", method = RequestMethod.POST) public void params(@RequestBody Map<String, String> params, HttpServletRequest request, HttpServletResponse response) { System.out.println("总共获取到:"+params.size()+"个参数"); for(String key : params.keySet()){ System.out.println(key + " : " + params.get(key)); } writeJson(response, "ok"); }