jquery ajax 用 data 和 headers 向 java RESTful 传递参数区别
2016-12-26 19:20
561 查看
jquery 的 ajax 是非常方便的一个函数,记录一下 $.ajax 生成的 http 报文
此时生成的 http 报文类似于下面这样:
参数在 http 的正文部分,在 RESTful 中使用注解 @FormParam 可以获取到此参数
此时生成的 http 报文类似于下面这样:
参数在 http 的报头部分,在 RESTful 中使用注解 @HeaderParam 可以获取到此参数
一、使用 data 传递参数:
1 $.ajax({ 2 url : "webrs/test/addBook", 3 type : "POST", 4 data:{ 5 id : "xx", 6 name : "中", 7 price : "xx" 8 }, 9 10 contentType: "text/plain; charset=utf-8" 11 });
此时生成的 http 报文类似于下面这样:
POST /WS_BookStore/faces/webrs/test/addBook HTTP/1.1 (CRLF) Host: localhost:8080 (CRLF) Connection: keep-alive (CRLF) Content-Length: 22 (CRLF) Pragma: no-cache (CRLF) Cache-Control: no-cache (CRLF) Accept: */* (CRLF) Origin: http://localhost:8080 (CRLF) X-Requested-With: XMLHttpRequest (CRLF) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 (CRLF) Content-Type: application/x-www-form-urlencoded; charset=UTF-8 (CRLF) Referer: http://localhost:8080/WS_BookStore/faces/deleteBook.html (CRLF) Accept-Encoding: gzip, deflate, br (CRLF) Accept-Language: zh-CN,zh;q=0.8 (CRLF) Cookie: JSESSIONID=ab94dd581643b1b96e0190c3bbeb (CRLF) (CRLF) //该CRLF表示消息报头已经结束,在此之前为消息报头 id=xx&name=%E4%B8%AD&price=xx
参数在 http 的正文部分,在 RESTful 中使用注解 @FormParam 可以获取到此参数
1 @POST 2 @Produces("application/json; charset=UTF-8") 3 @Path("addBook") 4 public String addBook(@FormParam("id") int BookID, @FormParam("name") String BookName, @FormParam("price") int Price) { 5 // ... 6 }
二、使用 headers 传递参数
1 $.ajax({ 2 url : "webrs/test/addBook", 3 type : "POST", 4 headers:{ 5 id : "xx", 6 name : "xx", 7 price : "xx" 8 }, 9 10 contentType: "text/plan; charset=utf-8" 11 });
此时生成的 http 报文类似于下面这样:
POST /WS_BookStore/faces/webrs/test/addBook HTTP/1.1 (CRLF) Host: localhost:8080 (CRLF) Connection: keep-alive (CRLF) Content-Length: 0 (CRLF) Pragma: no-cache (CRLF) Cache-Control: no-cache (CRLF) Origin: http://localhost:8080 (CRLF) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 id: xx (CRLF) // 注意参数 id 在这里 Content-Type: text/plan; charset=utf-8 (CRLF) Accept: */* (CRLF) X-Requested-With: XMLHttpRequest (CRLF) name: xx (CRLF) // 注意参数 name 在这里 price: xx (CRLF) // 注意参数 price 在这里 Referer: http://localhost:8080/WS_BookStore/faces/deleteBook.html (CRLF) Accept-Encoding: gzip, deflate, br (CRLF) Accept-Language: zh-CN,zh;q=0.8 (CRLF) Cookie: JSESSIONID=ab94dd581643b1b96e0190c3bbeb (CRLF)
参数在 http 的报头部分,在 RESTful 中使用注解 @HeaderParam 可以获取到此参数
1 @POST 2 @Produces("application/json; charset=UTF-8") 3 @Path("deleteBook") 4 public String deleteBook(@HeaderParam("id") int BookID) { 5 // ... 6 }
相关文章推荐
- Java两种参数传递方式的区别
- Java与C++的参数传递区别
- 面向对象语言(如Java)中:基本类型与对象在存储和参数传递上的区别
- [改善Java代码]注意方法中传递的参数要求(replaceAll和replace的区别)
- jquery ajax中data参数的传递
- java 基础 String和StringBuffer在作为参数传递时的区别
- jquery ajax传递的data参数中带json多维数组字符串
- java方法的参数是值传递,区别于引用传递的概念
- 用"堆栈区数据复制"理解Java赋值和参数传递机制的心得
- 关于Java的引用和函数参数传递
- 参数传递 之 按值传递和按地址传递的区别
- Java中如何区别Post和Get的参数?
- 关于Java的参数传递
- 关于JAVA参数传递的问题!~
- java的参数传递问题。
- java学习笔记:参数传递(2)
- java程序用post方式给某一网页传递参数
- Java只有一种参数传递方式,那就是传值
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- .net页面间的参数传递简单实例 选择自 JavaProgramers 的 Blog