jquery ajax 加header怎么通过header传递参数

今天看啥 热点:
JQuery中使用ajax传输超大数据的解决方法,jqueryajax
直接说问题,在一个页面用了Jquery(1.6)的Ajax请求,用的post,传递显示的数组有500多条.php端却只能接受到50条左右。刚开始以为是web服务器设置的问题,把,max_upload_size这类的都改了。但是没有效果,后来尝试用max_input_vars这个是新玩艺,刚开始还有点作用。后来,客户的数据超过2000的时候,还是一样,php端还是不能完全接受到ajax发送过来的数据。最后,在国外的一网站上,找到了解决方案。
在post发送前,将要发送的变量用JSON.stringify处理下,就ok了.JSON.stringify是什么呢???请移步这里:/article/29893.htm
可能的原因:1 你后台没有返回值 2 你ajax 的success 函数里没做接受数据 或后台返回的数据与接收的 数据类型不一致 3 后台有异常抛出
jquery ajax 是要靠服务器语言才能查询数据库的啊...jquery可以用$.post(&url&,{参数},function(data){
这个是利用post的方法,请求PHP,再用PHP返回查询到的内容.data就是返回的内容了}); 当然也可以使用$.ajax方法做异步传输请求..
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&
HTML/Xhtml最近更新Jquery中AJAX参数详细列表:
(默认: 当前页地址) 发送请求的地址。
(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
设置请求超时时间(毫秒)。此设置将覆盖全局设置。
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend
发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
function (XMLHttpRequest) {
this; // the options for this ajax request}
(默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。
function (XMLHttpRequest, textStatus) {
this; // the options for this ajax request}
contentType
(默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。
Object,String
发 送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含 script 元素。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。
"json": 返回 JSON 数据 。
格式。使用
形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
(默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
function (XMLHttpRequest, textStatus, errorThrown) {
// 通常情况下textStatus和errorThown只有其中一个有值
this; // the options for this ajax request}
(默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件
ifModified
(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
processData
(默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request}
      $(document).ready(function() {
jQuery("#clearCac").click(function() {
jQuery.ajax({
url: "/Handle/Do.aspx",
type: "post",
data: { id: '0' },
dataType: "json",
success: function(msg) {
alert(msg);
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
complete: function(XMLHttpRequest, textStatus) {
this; // 调用本次AJAX请求时传递的options参数
一、error:function (XMLHttpRequest, textStatus, errorThrown) (默认: 自动判断 (xml 或 html)) 请求失败时调用时间。参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。textStatus: "timeout", "error", "notmodified" 和 "parsererror"。二、error事件返回的第一个参数XMLHttpRequest有一些有用的信息:XMLHttpRequest.readyState: 状态码:0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了三、data:"{}", data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror.四、parsererror的异常和Header 类型也有关系。及编码header('Content-type: text/ charset=utf8'); 五、XMLHttpRequest.status:略
阅读(...) 评论()jquery的ajax()函数传值中文乱码解决方法介绍
字体:[ ] 类型:转载 时间:
jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下
代码如下: $.ajax({   dataType : ‘json',type : ‘POST',url : ‘http://localhost/test/test.do',data : {id: 1, type: ‘商品'},success : function(data){ } } );
问题: 提交后后台action程序时,取到的type是乱码 解决方法: 方法一:提交前采用encodeURI两次编码,记住一定是两次 1.修改以下代码
代码如下: data:{id:1, type:encodeURI(encodeURI(‘商品'))}
2.在后台action里要对取得的字符串进行decode 1、String type = request.getParameter(“type”); 2、type = URLDecoder.decode(type, “UTF-8″); 方法二:ajax配置contentType属性,加上charset=UTF-8 在ajax方法中加入以下参数 contentType: “application/x-www-form- charset=UTF-8″使用其它js框架或者xhr都是差不多,设置header中contentType即可, 这里关键是charset=UTF-8,如果没有这个,是不行的,默认jQuery里的contentType是没有的 一、测试环境 jQuery:1.3.2 tomcat:5.5.17 二、测试方法 1.使用get方式 服务器端java代码:
代码如下: String name = new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");
客户端js代码:
代码如下: $.ajax({url: "2.jsp",type: "get",data: {name:"中文"},success: function(response){ alert(response); }});
结果:正确显示
代码如下: $.ajax({url: "2.jsp",type: "get",data: "name=中文",success: function(response){ alert(response); }});
结果:乱码
代码如下: $.get("2.jsp", { name: "中文" },function(response){ alert(response); });
结果:正确显示
代码如下: $.get("2.jsp", "name=中文",function(response){ alert(response); });
结果:乱码 2.post方式 服务器端java代码:
代码如下: request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name");
客户端js代码:
代码如下: $.ajax({url: "3.jsp",type: "post",data: "method=testAjaxPost&name=中文",success: function(response){ alert(response); }});
结果:正确显示
代码如下: $.ajax({url: "3.jsp",type: "post",data: {name:"中文"},success: function(response){ alert(response); }});
结果:正确显示
代码如下: $.post("3.jsp", { name: "中文" },function(response){ alert(response); });
结果:正确显示
代码如下: $.post("3.jsp", "name=中文",function(response){ alert(response); });
结果:正确显示 三、使用filter
代码如下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) if (req.getHeader("X-Requested-With") != null && req.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")) { request.setCharacterEncoding("utf-8"); } else { request.setCharacterEncoding("gbk"); } chain.doFilter(request, response); }
jQuery在使用ajax的时候会在header中加入X-Requested-With,值为:XMLHttpRequest,filter中判断是jQuery的ajax请求时就把字符编码设为utf8,这样可以解决post提交中的中文乱码问题,不需要在代码中设置request.setCharacterEncoding("UTF-8"); 对于get方式的中文乱码问题,建议不使用get方式提交中文,统统改为post ^-^ 为了和prototype.js处理中文的方式一致,可以使用如下的方式,自定义header中的属性RequestType
代码如下: $.ajax({ url: "3.jsp", type: "post", data: {name:"中文"}, beforeSend: function(XMLHttpRequest){ XMLHttpRequest.setRequestHeader("RequestType", "ajax"); alert("开始"); }, success: function(data, textStatus){ alert(data); }, error: function(XMLHttpRequest, textStatus, errorThrown){ alert("错误:" + textStatus); }, complete: function(XMLHttpRequest, textStatus){ alert("完成:" + textStatus); } });
filter代码如下:
代码如下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) if (req.getHeader("RequestType") != null && req.getHeader("RequestType").equalsIgnoreCase("ajax"))) { request.setCharacterEncoding("utf-8"); } else { request.setCharacterEncoding("gbk"); } chain.doFilter(request, response); }
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 header传递参数 的文章

 

随机推荐