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 ...
随机推荐
- 游戏服务器ID生成器组件
游戏服务器程序中,经常需要生成全局的唯一ID号,这个功能很常用,本文将介绍一种通用ID生成组件.游戏服务器程序中使用此组件的场景有: 创建角色时,为其分配唯一ID 创建物品时,每个物品需要唯一ID 创 ...
- Spring AOP Schema aop:config、tx:advice
Spring AOP Schema aop:config.tx:advice 一. 利用aop:config标签实现AOP 首先看个例子,如下 接口代码: package com.lei. ...
- js 事件捕获与事件冒泡例子
http://codepen.io/huashiyiqike/pen/qZVdag addEventListener 默认是冒泡阶段执行,也就是父亲与子都监听时,点击子,子先处理,父亲再处理,这时加s ...
- python load mat 并按变量名赋值
import numpy as np import scipy.io as io creat = locals() tmp = io.loadmat("all.mat") for ...
- vxworks下网络编程一:网络字节序问题
inet_addr("192.168.1.1");//返回网络字节序整型ip地址inet_ntoa(saddr);//将包含网络字节序整型ip地址的in_addr对象转换成本地ch ...
- Python初学者需要注意的问题
一.注意你的Python版本 Python官方网站为http://www.python.org/,当前最新版本为3.4.0 alpha,稳定版本为3.3.2,在3.0版本时,Python的语法改动较大 ...
- java nio 网络框架实现
maven项目 https://github.com/solq360/common 链式编/解码 链路层链式处理 管道管理socket 多协议处理非常方便 仿netty NioEventLoop 单线 ...
- 让我们一起Go(十一)
前言: 今天又要继续了,当初自己的挖的坑必须得填啊,尽管天气非常滴热,但是丝毫无法阻挡我填坑的热情,那么,我们继续让我们一起Go!!! 定义方法: 这里我们要来看看Golang中的(Methods)方 ...
- java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库
JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...
- 菜鸟学Windows Phone 8开发(1)——创建第一个应用程序
本系列文章来源MSDN的 面向完全新手的 Windows Phone 8 开发 主要是想通过翻译本系列文章来巩固下基础知识顺带学习下英语和练习下自己的毅力(因为打算每天翻译一篇,但是发现翻译这篇花费了 ...