springMVC 中 ajax get 请求和 post 请求的坑以及参数传递
1, ajax 请求 无论为 post ,或者 get ,url中带有?形式的参数,后台都能以String类型变量接收,变量名称和参数名称必须一致
前台ajax:
$.ajax(
"productForm?loginname2=jichen",// 发送请求的URL字符串。
{
dataType : "JSON", // 预期服务器返回的数据类型。如果服务器返回不一致,报 parseError
type : "post" 或者 “get”, // 请求方式 POST或GET
contentType:"application/json;charset=UTF-8", // 发送信息至服务器时的内容编码类型
。。。
});
后台springMVC:
@RequestMapping(value="/productForm")
@ResponseBody(这个注解意味着这个方法的返回值不是页面名称,而是同一次请求的返回体(也就是服务器返回给客户端的数据))
public String ProductPost(String loginname2){
(此处必须和前台传的参数名称一致)
System.out.println(loginname2);打印的值就是 jichen
}
2,ajax 请求 为 post , contentType 必须为 "application/json;charset=UTF-8",data 必须用 JSON.stringify 格式化: JSON.stringify({id : 1}),则后台可以用 Map 类型的@RequestBody Map data 来接收,缺一不可;
前台ajax:
$.ajax(
"productForm?loginname2=jichen",// 发送请求的URL字符串。
{
type : "post",
contentType:"application/json;charset=UTF-8", // 发送信息至服务器时的内容编码类型,如果不加 charset,则中文传到后台为乱码
// 发送到服务器的数据。
data:JSON.stringify({id : 1, loginname : "Spring MVC企业应用实战"})
}
后台springMVC:
@RequestMapping(value="/productForm")
@ResponseBody(这个注解意味着这个方法的返回值不是页面名称,而是同一次请求的返回体(也就是服务器返回给客户端的数据))
public String ProductPost(String loginname2,@RequestBody Map data){
System.out.println(data.get("loginname"));打印出来 Spring MVC企业应用实战
}
3 ,ajax 请求 为 get,data 不能用 JSON.stringify 格式化: JSON.stringify({id : 1}),可以直接传一个对象:{id : 1},如果传的是一个对象,则相当于给 url 加?形式的参数 productForm?id=1 ,如果用 JSON.stringify 格式化,报错:
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
还有,如果为 get 请求,则后台 springMVC 不能用 @RequestBody注解,因为http 1.1协议不支持,如果使用,报错:
Required request body is missing
前台ajax:
$.ajax("productForm?loginname=jichen",// 发送请求的URL字符串。
{
dataType : "JSON", // 预期服务器返回的数据类型。如果服务器返回不一致,报 parseError
type : "get",
// 发送到服务器的数据。
data:{id : 1, loginname : "Spring MVC企业应用实战",auto:123}
}
后台springMVC:
@RequestMapping(value="/productForm")
@ResponseBody(这个注解意味着这个方法的返回值不是页面名称,而是同一次请求的返回体(也就是服务器返回给客户端的数据))
public String ProductPost(String loginname){
System.out.println(data.get("loginname"));打印出来 jichen,Spring MVC?????(使用?方式传参,中文为乱码)
}
4,如果把 3 的 type 改为 post,contentType 不能写 application/json (可直接省略,如果写成 application/json ,则data 对象传不到后台), data传的是对象{id : 1, loginname : "Spring MVC企业应用实战",auto:123},其它不变,则还是相当于给url带参,?id=1&auto=123.。。。,但是,传到后台的中文不是乱码,神奇!
5,后台接收前台传递的参数的方式
(1)直接用
后台springMVC:
@RequestMapping(value="/productForm")
@ResponseBody(这个注解意味着这个方法的返回值不是页面名称,而是同一次请求的返回体(也就是服务器返回给客户端的数据))
public String ProductPost(String loginname){
System.out.println(data.get("loginname"));打印出来 jichen,Spring MVC?????(使用?方式传参,中文为乱码)
}
springMVC 中 ajax get 请求和 post 请求的坑以及参数传递的更多相关文章
- 前端ajax中运用post请求和get请求之于session验证
首先我们来看下ajax两种请求的区别: Ajax中POST和GET的区别Get和Post都是向服务器发送的一种请求,只是发送机制不同. 1. GET请求会将参数跟在URL后进行传递,而POST请求则是 ...
- node中的get请求和post请求的不同操作【node学习第五篇】
获取get的请求内容 /** * Created by Administrator on 2016/8/5. */ var http = require("http"); var ...
- iOS开发中的Get请求和POST请求
//Get请求一般为不涉及到用户的账号密码的网络请求,其中Get请求是等请求内容回来之后,才可以进行下一步的操作 - (void)requestWithGet{ //Get请求: //1.设置请求路径 ...
- haproxy 中的http请求和https请求
use Mojolicious::Lite; use JSON qw/encode_json decode_json/; use Encode; no strict; use JSON; # /foo ...
- GET 请求和 POST 请求的区别和使用
作为前端开发, HTTP 中的 POST 请求和 GET 请求是经常会用到的东西,有的人可能知道,但对其原理和如何使用并不特别清楚,那么今天来浅谈一下两者的区别与如何使用. GET请求和POST请求的 ...
- Ajax中get请求和post请求
我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...
- js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快、简单 post:安全,量大,不缓存)(服务器同步和异步区别:同步:等待服务器响应当中浏览器不能做别的事情)(ajax和jquery一起用的)
js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快.简单 post:安全,量大,不缓存)( ...
- axios中出现两次请求,OPTIONS请求和GET请求
在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...
- Ajax相关——get请求和post请求的区别
一.完整的URL由以下几部分组成: scheme:通信协议,常用的有:http/ftp. host:主机,服务器(计算机)域名或IP地址 port:端口,整数,可选,省略时使用默认端口,http的默认 ...
随机推荐
- bzoj4804
莫比乌斯反演 我不会推线性筛 留坑
- SQL 维护计划(自动删除备份文件)
--开启修改配置功能 exec sp_configure 'allow updates', 0 --启用功能 sp_configure 'xp_cmdshell',1; reconfigure --临 ...
- 1 python----pycharm本地部署spark
下图相关工具连接 链接:https://pan.baidu.com/s/115XWf_Fc1yMiJytKJQXnFQ 密码:3jvr 好了,加油哟!
- HTTP请求信息和响应信息的格式
请求: (1)请求行信息 Request URL: 发起请求的路径 Request Method:请求的方式(get post head put delete trace options等) ...
- canvas常用画法整理
代码Canvas.htm <!DOCTYPE html> <html lang="en"> <head> <title>canvas ...
- with rollup
实验吧的一道ctf题,这两天无聊,做做ctf题.在实验吧被一道也题卡了好久. 页面很简单就是一个登陆页面,按照之前的经验觉得应该是注入吧.再看题猜测应该是绕waf之类的. 查看页面源码找到了提供的源代 ...
- Codeforces Round #542(Div. 2) B.Two Cakes
链接:https://codeforces.com/contest/1130/problem/B 题意: 给定n和 2 * n个数,表示i位置卖ai层蛋糕, 有两个人在1号,必须严格按照1-n的顺序买 ...
- 牛客寒假5-J.炫酷数学
链接:https://ac.nowcoder.com/acm/contest/331/J 题意: 小希最近想知道一个东西,就是A+B=A|B(其中|为按位或)的二元组有多少个. 当然,直接做这个式子对 ...
- POJ-3275:Ranking the Cows(Floyd、bitset)
Ranking the Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3301 Accepted: 1511 ...
- HDU6301(2018多校第一场)
Bryce1010模板 http://acm.hdu.edu.cn/showproblem.php?pid=6301 队友AC的,没怎么看 #include<iostream> #incl ...