1. application / x-www-form-urlencodedを使用してデータを転送します
Ajaxのデフォルト形式は次のとおりです。application/ x-www-form-urlencoded、これはデータを渡すための(username = "admin"&password = 123)と同等です(これはGET要求の固定形式です)
フロントエンドコード:
当Ajax以默认格式上传时,data数据直接使用JSON对象user,不用转换为JSON字符串(很方便)
var user= {
"username" : username,
"password" : password,
"rememberMe":rememberMe
};
$.ajax({
url : "http://...../jsontest.do",
type : "POST",
data : user,
dataType : 'json',
success : function(data) {
}
});
バックエンドコード:
@RequestMapping("/jsontest.do")
public void test(User user,String username,String password,Boolean rememberMe){
System.out.println(user);
System.out.println("username: " + username);
System.out.println("password: " + password);
System.out.println("rememberMe: " + rememberMe);
}
次に、application / json形式を使用してデータを転送します
フロントエンドコード:
var user= {
"username" : username,
"password" : password
};
$.ajax({
url : "http://...../jsontest.do",
type : "POST",
async : true,
contentType: "application/json; charset=utf-8",
data : JSON.stringify(user),
dataType : 'json',
success : function(data) {
}
});
バックエンドコード:
//必须使用@RequestBody 注解
@RequestMapping("/jsontest")
public void test(@RequestBody User user){
String username = user.getUsername();
String password = user.getPassword();
}
或者
@RequestMapping("/jsontest")
public void test(@RequestBody Map map){
String username = map.get("username").toString();
String password = map.get("password").toString();
}
或者
public void test(@RequestBody String jsonData) {
JSONObject jsonObject = JSON.parseObject(jsonData);
String username= jsonObject.getString("username");
String username= jsonObject.getString("password");
}