一、jQuery-Ajax参数说明

$.ajax(prop) 通过一个ajax请求,回去远程数据,prop是一个hash表,它可以传递的key/value有以下几种

(String)type:数据传递方式(get或post)

(String)url:数据请求页面的url

(String)data:传递数据的参数字符串,只适合post方式

(String)dataType:期待数据返回的数据格式(例如 "xml", "html", "script",或 "json")

(Boolean)ifModified: 当最后一次请求的相应有变化是才成功返回,默认值是false

(Number)timeout:设置时间延迟请求的时间

(Boolean)global:是否为当前请求触发ajax全局事件,默认为true

(Function)error:当请求失败时触发的函数

(Function)success:当请求成功时触发函数

(Function)complete:当请求完成后出发函数

二、jQuery中实现Ajax的3种方法(post,get,ajax)

//------------------post--------------------------------------------------------------------

$('#input1').click(function(){
$.post(

'ajax.ashx',

{username:$("#username").val()},
function(data){

var myjson='';
eval("myjson="+data+";");

$("#content_post").html('post区'+myjson.username);
}

);

);

//-------------------get--------------------------------------------------------------------

$('#input2').click(function(){
$.get('ajax.ashx',{username:$("#username").val()},
function(data){

var myjson='';
eval("myjson="+data+";");

$("#content_get").html("get区"+myjson.username);
});
});

//-------------------ajax-------------------------------------------------------------------

$('#input3').click(function(){
var params=$('#username').serialize();
$.ajax({
url :'ajax.ashx',
type:'get',
dataType:'json',
data:params,
error:update_page,
success:update_page
});
});
});
function update_page (json) {
var str="ajax区:"+json.username+"<br />";
$("#content_ajax").html(str);
}
</HEAD>

<BODY>
<div id="content_post" style="background:orange;border:1px solid red;width:410px;height:50px;">post区:</div>
<div id="content_get" style="background:orange;border:1px solid red;width:410px;height:50px;">get区:</div>
<div id="content_ajax" style="background:orange;border:1px solid red;width:410px;height:50px;">ajax区:</div>
<form>
<input type="text" id="username" name='username'/>
<input type="button" id='input1' value="post提交"/>
<input type="button" id='input2' value="get提交"/>
<input type="button" id='input3' value="ajax提交"/>
</form>
</BODY>
</HTML>

三、相同url缓存问题的解决

对于get请求:

url = "someurl.php?id=123";

url += "&anticache=" + Math.floor(Math.random()*1000);

$.get(url);
对于post请求:

parms = {

id : "123",

anticache : Math.floor(Math.random()*1000)

};

$.post("someurl.php", parms);

四、JQuery.ajax传递中文参数乱码的解决方法

解决方案:

?
1
var data = {
?
1
UserName: escape(your user name here),
?
1
Password: escape(your password here),};
?
1
var jsonStr = JSON.stringify(data); //
?
1
the json2 method.$.ajax({
?
1
url: '../Service.asmx/Login',
?
1
data: 'userinfo=' + jsonStr,
?
1
contentType: "application/json; charset=utf-8",
?
1
dataType: "jsonp",
?
1
type: "GET",
?
1
success: function(response) { … },
?
1
error: function(a, b, c) { … }}
?
1

这个方案就是使用javascript的escape方法来对中文字符进行编码,然后到WebService那里会自动解码成为中文。
第二个问题:用JQuery Ajax GET传送瑞典字符等Unicode字符出现乱码,即便是用了escape也无济于事。
通过GET方法发送的请求实际上还是通过URI来传送参数的,那么GET方式传送的字符就与文件设定的编码格式无关了,完全是由URI来决定传送的是什么,那么如果对URI进行编码呢?
事实上,javascript已经有这样的全局函数来实现对URI的编码了:encodeURI(uri),让JQuery Ajax发送一个由URI编码好的数据就不会出现乱码了,而且在WebService端还能自动对数据进行decode.
改善后的代码如下:

?
1
var data = {
?
1
UserName: encodeURI(your user name here),
?
1
Password: encodeURI(your password here),};
?
1
var jsonStr = JSON.stringify(data); //
?
1
the json2 method.
?
1
$.ajax({
?
1
url: '../Service.asmx/Login',
?
1
data: 'userinfo=' + jsonStr,
?
1
contentType: "application/json; charset=utf-8",
?
1
dataType: "jsonp",
?
1
type: "GET",
?
1
success: function(response) { … },
?
1
error: function(a, b, c) { … }}
?
1

这个改进后的方案不仅仅对中文字符有效,而且对其他的Unicode字符都可以有效的解决乱码问题。

转载于:https://blog.51cto.com/linzheng/1081833

jQuery-Ajax相关推荐

  1. 无刷新删除 Ajax,JQuery

    无刷新删除 Ajax,JQuery 1.数据库用上面的,增加一个 DeleteById 的SQL方法 delete from T_Posts where Id = @Original_Id 2.设置处 ...

  2. when ajax,jQuery.when()

    jQuery.when() 方法 实例 一个参数传递给 $.when() 被受理,执行回调函数 $(function(){$.when({testing:123}).done(function(x){ ...

  3. Ajax的用法之JQuery

    示例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  4. Ajax实现--jQuery

    1.普通的html数据格式,这个我用jquery的$.ajax()函数来实现,(jquery提供了三种函数,$.ajax(), $.get(), $.post(),从名字我们就能看出来实现方式) aj ...

  5. Ajax(jquery)

    在js+Ajax中,要区别版本信息,在jquery中不需要. Ajax用jquery实现主要有三个API:$.ajax()/$.get()/$.post() 1.$.ajax() ###xxx.htm ...

  6. 第一章:AJAX与jQuery

    AJAX 第一章:AJAX与jQuery 概念:AJAX = Asynchronous JavaScript And XML(异步的 JavaScript 和 XML).阿贾克斯 AJAX 不是新的编 ...

  7. Spring MVC:Ajax和JQuery

    今天,我想演示如何将AJAX集成到Spring MVC应用程序中. 我将在客户端使用JQuery来发送请求和接收响应. 本教程将基于我以前关于Spring MVC和REST服务的教程之一. 在本文中, ...

  8. JQuery(三)-- AJAX的深入理解以及JQuery的使用

    HTTP HTTP http: 超文本传输协议.特点:  简单.快速.灵活.无状态.无连接 URL: 统一资源定位符. 组成:协议名://主机IP:端口号/项目资源地址?传递参数的键值对#锚点 ①ip ...

  9. ajax通过什么实现,ajax(通过jQuery实现)

    使用jQuery实现ajax相对来说方便一点,看w3cschool有几种实现的方法,我就总结一下自己以后会用到的几种方法 $.ajax方法: $.ajax方法里面有很多个参数可以使用,但我这里就写自己 ...

  10. ajax jsp jquery,ajax +jquery 基本

    ajax格式,(key:value,)value值用单引号括起来 $.ajax({ type:,      //'post','get' url:,        //action的路径 data:, ...

最新文章

  1. 面试八股文最新版出炉!一周肝了15个新篇章……
  2. python lxml读写xml
  3. SpringBoot_数据访问-整合Druid配置数据源监控
  4. PAT_B_1085_Java(25分)
  5. 静态类 c# 1615139615
  6. 安全攻防六:SQL注入,明明设置了强密码,为什么还会被别人登录
  7. html复选框变蓝,更改html复选框的背景颜色
  8. 2022年版中国电子信息产业趋势预测及投资战略规划分析报告
  9. 探究人工智能辅助新时代心理学研究
  10. 新导智能融合定位可视化物联系统
  11. 简单的银行管理系统(接口)
  12. Elasticsearch-analysis-pinyin7.6.0--可选参数详情
  13. 华为机试真题 Java 实现【不含 101 的数】【2022.11 Q4新题】
  14. Redis的list,set,zset类型应用及排行榜的实现
  15. MySQL存储引擎概叙
  16. Fine-grained Classification 论文调研
  17. 基于Actix-Web 和Rbatis 的用户注册和登录实现(一)
  18. 专利申请流程具体有哪些
  19. mysql command为sleep时项目可以连接_mysql数据库常连接造成大量sleep状态怎么办
  20. JS实现复制功能的三种方式,有坑

热门文章

  1. mysql创建用户phpmyadmin_MySQL添加新用户和数据库(命令行模式和phpmyadmin)
  2. redis的过期策略和淘汰策略
  3. html读取csv文件,javaScript读取.csv文件或.xlsx文件
  4. android bundle传递list对象集合,如何从android中的firebase中检索List对象
  5. c3074 无法使用带圆括号的_小学生常见易考标点符号使用方法及练习(含答案)...
  6. linux 用root安装mysql数据库_Linux上安装Mysql及简单的使用详解
  7. 数据库缓存最终一致性的四种方案
  8. 交大c语言第二次作业答案,C语言程序设计第二次作业题及答案.doc
  9. c语言图形方式初始化,c语言图形方式下的编程.doc
  10. php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现