jquery ajax 用 data 和 headers 向 java RESTful 传递参数区别
jquery 的 ajax 是非常方便的一个函数,记录一下 $.ajax 生成的 http 报文
一、使用 data 传递参数:
$.ajax({
url : "webrs/test/addBook",
type : "POST",
data:{
id : "xx",
name : "中",
price : "xx"
},
contentType: "text/plain; charset=utf-8"
});
此时生成的 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 可以获取到此参数
@POST
@Produces("application/json; charset=UTF-8")
@Path("addBook")
public String addBook(@FormParam("id") int BookID, @FormParam("name") String BookName, @FormParam("price") int Price) {
// ...
}
二、使用 headers 传递参数
$.ajax({
url : "webrs/test/addBook",
type : "POST",
headers:{
id : "xx",
name : "xx",
price : "xx"
},
contentType: "text/plan; charset=utf-8"
});
此时生成的 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 可以获取到此参数
@POST
@Produces("application/json; charset=UTF-8")
@Path("deleteBook")
public String deleteBook(@HeaderParam("id") int BookID) {
// ...
}
jquery ajax 用 data 和 headers 向 java RESTful 传递参数区别的更多相关文章
- jQuery Ajax Post Data Example
http://www.formget.com/jquery-post-data/ jQuery Ajax Post Data Example Fugo Of FormGet jQuery $.post ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...
- Java方法传递参数传值还是传址的问题
这几天重构项目代码遇到一个疑问:可不可以在方法A中定义一个boolean变量b为false,然后A调用方法C把b传递到C方法中经过一些列业务判断后修改为true,C执行结束后A方法中b的值还是原来的f ...
- JQuery.Ajax()的data参数类型
假如现在有这样一个表单,是添加元素用的. <form id='addForm' action='UserAdd.action' type='post'> <label for='un ...
- jquery ajax中data属性详解
$.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , ...
- JQuery.Ajax()的data参数传递方式
最近,新学c# mvc,通过ajax post方式传递数据到controller.刚开始传递参数,controller中总是为null.现记录一下,可能不全,纯粹记个学习日记. 重点在于参数的方式,代 ...
- jQuery Ajax传值给Servlet,在Servlet里Get接受参数乱码的解决方法
最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...
- [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...
随机推荐
- Jenkins 安装或更新插件失败
试试这个插件网址是否可以在网页中打开 http://mirror.xmission.com/jenkins/updates/current/update-center.json 如可以,把这个网址 ...
- Golang pprof heap profile is empty
Q: When you use `go tool pprof` get heap data, profile is empty. A: The default sampling rate is 1 s ...
- MassTransit_消费者的创建
Creating a message consumer A message consumer is a class that consumes one or more message types, s ...
- C++ 类的静态成员详细讲解(转)
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...
- HTML5应用程序缓存Application Cache详解
什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...
- PSAM卡与CPU(用户卡)的操作过程
最近我一直在研究关于通过国密PSAM卡作为安全模块来读写cpu(用户卡)的问题 其实,两者都是卡片,或者说都是从设备.它们之间是无法相互访问的. 实际上,PSAM 卡是作为秘密密钥的载体,专门执行加密 ...
- 在linux安装mysql,并设置远程访问
1.查看系统有没有安装mysql. vpm -qa mysql 发现有删除:rpm -e mysql(rpm -e --nodeps mysql) 2.下载数据库 mysql-standard-5.0 ...
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- github上的版本和本地版本冲突的解决方法
勾选强制覆盖已有的分支(可能会丢失改动),再点击上传,上传成功. [master][~/Downloads/ios] git push -u origin master -f
- zk框架中利用map类型传值来创建window,并且传值
@Command @NotifyChange("accList") public void clear(@BindingParam("id") String a ...