首页 > 网站 > WEB开发 > 正文

Ajax请求Json遇到的问题总结

2024-04-27 15:09:35
字体:
来源:转载
供稿:网友

第一次用Ajax call后端,遇到了不少问题。 所以就下面总结一下,以免后面再犯。

下面是代码部分

$(document).ready(function(){

$("#send").click(function(){

$.ajax({

url :"getAjaxInfo.action",

// timeout : 20,//当超过超时时间就会走error方法

data :JSON.stringify({

username:$("#username").val(),

content : $("#content").val(),

passWord :"kobe"

}),//如果没有JSON.stringify这个函数就会报400,这个错误。因为后端进行参数绑定的时候就会有问题

contentType: "application/json",//没有加这个回报415,类型错误

type:"POST",

dataType :"json",//期待服务器返回的数据类型

beforeSend : function(xmlHttPRequest) {//防止表单的重复提交,禁用掉提交的button

$("#send").attr({'disabled':'disabled'});

},

success : function(data,textStauts) {

console.log(data);

console.log(textStauts);

},

error : function(xmlhttpRequest,textStatus,errorThrown){

console.log(XMLHttpRequest);

console.log(textStatus);

console.log(errorThrown);

},

complete : function(XMLHttpRequest,textStatus) {//不管调用成功或者失败都会走

$("#send").removeAttr('disabled');//在调用完成之后,不管成功或者失败。恢复提交按钮

// console.log(XMLHttpRequest);

// console.log(textStatus);

}

})

});

@RequestMapping(value = "/getAjaxInfo", method = RequestMethod.POST)

@ResponseBody

public User getAjaxInfo(@RequestBody Useruser)throws Exception {

if(null !=user.getUsername()) {

user.setUsername("hello :" +user.getUsername());

Thread.sleep(3000);

//throw new Exception("error");

}

returnuser;

}

因为没有制定数据类型:所以回报下面的错,所以要指定contentType: "application/json"

如果给data没有用JSON.stringify().就会报400错误。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表