注意目录和修改相同的字符编码

JQuery Ajax方法

一、JQuery Ajax简介:

Ajax是与服务器交换数据的技术,实现异步更新。

二、JQuery Ajax load()方法:

JQuery load()方法从服务器加载元素,并将返回的数据放入到被选元素中。

语法:$(selector).load(URL,data,callback);

必需的 URL 参数规定您希望加载的 URL。

可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。

可选的 callback 参数是 load() 方法完成后所执行的函数名称。

1、URL案例

(1)以下是用JQ-Ajax技术来更新一个div区域的内容:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
 7         <script>
 8             $(function() {
 9                 $("button").click(function() {
10                     $("#div1").load("1.txt");
11                 });
12             });
13         </script>
14     </head>
15     <body>
16         <div class="div1" id="div1">注意目录和修改相同的字符编码</div>
17         <button>Ajax-获取txt文件</button>
18     </body>
19 </html>

运行结果如下所示:

点击按钮后:(改变的文字首先要存放在一个txt文件中)

 (2)txt文件中还可以放置标签,html中部分代码如下:

1 <script>
2             $(function() {
3                 $("button").click(function() {
4                     $("#div1").load("1.txt #p1");         /*url参数中可以写JQ选择器,表示下载1.txt文件内容中的id为p1的内容*/
5                 });
6             });
7 </script>

2、callback案例:

可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数:

  • responseTxt - 包含调用成功时的结果内容
  • statusTXT - 包含调用的状态
  • xhr - 包含 XMLHttpRequest 对象

(1)callback返回成功案例

 1 <script>
 2             $(function() {
 3                 $("button").click(function() {
 4                     $("#div1").load("1.txt",function(responseTxt,statusTxt,xhr) {
 5                         if(statusTxt=="success")
 6                             alert("外部内容加载成功!");
 7                         if(statusTxt=="error")
 8                             alert("error:"+xhr.status+":"+xhr.statusTxt);
 9                     });
10                 });
11             });
12 </script>

结果:

(2)callback返回失败案例

 1 <script>
 2             $(function() {
 3                 $("button").click(function() {
 4                     $("#div1").load("2.png",function(responseTxt,statusTxt,xhr) {    /*没有2.png这个文件*/
 5                         if(statusTxt=="success")
 6                             alert("外部内容加载成功!");
 7                         if(statusTxt=="error")
 8                             alert("error:"+xhr.status+":"+xhr.statusTxt);
 9                     });
10                 });
11             });
12 </script>

结果:

 三、JQuery get()和post()方法:

$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

语法:$.get(URL,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 callback 参数是请求成功后所执行的函数名。

 

$.post() 方法通过 HTTP POST 请求向服务器提交数据。

语法:$.post(URL,data,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 data 参数规定连同请求发送的数据。

可选的 callback 参数是请求成功后所执行的函数名。

 1、get案例:

1.html部分代码:

1 <script>
2             $(function() {
3                 $("button").click(function() {
4                     $.get("1.php",function(data,status) {
5                         alert("数据:"+data+"\n状态"+status);
6                     })
7                 });
8             });
9 </script>

1.php代码:

<?php
echo '这个是php文件中的数据';
?>

结果:

2、post()方法      该方法自己未试验成功,大家可以多给指导,以下是网站代码

 html代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>菜鸟教程(runoob.com)</title>
 6 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
 7 </script>
 8 <script>
 9 $(document).ready(function(){
10     $("button").click(function(){
11         $.post("/try/ajax/demo_test_post.php",{
12             name:"菜鸟教程",
13             url:"http://www.runoob.com"
14         },
15         function(data,status){
16             alert("数据: \n" + data + "\n状态: " + status);
17         });
18     });
19 });
20 </script>
21 </head>
22 <body>
23 
24 <button>发送一个 HTTP POST 请求页面并获取返回内容</button>
25 
26 </body>
27 </html>
demo_test_post.php文件代码:
1 <?php
2 $name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
3 $url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : '';
4 echo '网站名: ' . $name;
5 echo "\n";
6 echo 'URL 地址: ' .$url;
7 ?>

结果:

四、$.ajax()方法:执行异步ajax请求

语法:$.ajax({name:value, name:value, ... })

 1 <script type="text/javascript">
 2             $(function() {
 3                 $("button").click(function() {
 4                     $.ajax({
 5                         url:"1.txt",
 6                         success:function(result){
 7                         $("#div1").html(result);
 8                         }
 9                     });
10                     $.ajax();
11                 });
12             });
13 </script>

结果:

五、$.ajaxPrefilter() 方法:  在每个请求发送之前且被$.ajax()处理之前,处理自定义Ajax选项或修改已经存在选项

六、$.ajaxSetup() 方法:为将来的ajax请求设置默认值

语法:$.ajaxSetup({name:value, name:value, ... })

 1 <script type="text/javascript">
 2             $(function() {
 3                 $("button").click(function() {
 4                     $.ajaxSetup({
 5                         url:"1.txt",
 6                         success:function(result){
 7                         $("div").html(result);
 8                         }
 9                     });
10                     $.ajax();
11                 });
12             });
13 </script>

结果:

七、$.ajaxTransport()方法:  创建处理Ajax数据实际传送的对象

八、$.getJSON() 方法:使用http get请求从服务器加载JSON编码的数据

    语法:$(selector).getJSON(url,data,success(data,status,xhr))

九、$.getScript()方法: 使用 AJAX 的 HTTP GET 请求从服务器加载并执行 JavaScript
十、$.param()方法: 创建数组或对象的序列化表示形式(可用于 AJAX 请求的 URL 查询字符串)
十一、$.post() 方法:使用 AJAX 的 HTTP POST 请求从服务器加载数据
十二、ajaxComplete() 方法:规定 AJAX 请求完成时运行的函数
十三、ajaxError() 方法:规定 AJAX 请求失败时运行的函数
十四、ajaxSend() 方法:规定 AJAX 请求发送之前运行的函数
十五、ajaxStart() 方法:规定第一个 AJAX 请求开始时运行的函数
十六、ajaxStop() 方法:规定所有的 AJAX 请求完成时运行的函数
十七、ajaxSuccess()方法: 规定 AJAX 请求成功完成时运行的函数
十八、load()方法: 从服务器加载数据,并把返回的数据放置到指定的元素中
十九、serialize()方法: 编码表单元素集为字符串以便提交
二十、serializeArray() 方法:编码表单元素集为 names 和 values 的数组

二十一、Jquery中如何将数组转化为json字符串,然后再转化回来?

      json数据格式:主要由对象 { } 和数组 [ ] 组成

   JSON.stringify(arr):将json对象arr转化为字符串类型;

  JSON.parse(obj):将字符串类型的json数据转化为json对象;

     (1)从服务器端接收数据:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<h2>使用 XMLHttpRequest 来获取文件内容</h2>
<p>文件内容是标准的 JSON 格式,可以使用 JSON.parse 方法将其转换为 JavaScript 对象。</p>

<p id="demo"></p>

<script>

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
xmlhttp.send();

</script>

<p>查看 JSON 文件数据 <a href="/try/ajax/json_demo.txt" target="_blank">json_demo.txt</a></p>

</body>
</html>

  结果:

           

 

 (2)解析异常  (JSON不能存储日期对象和函数,解决:先将其转换成字符串,再将其转换为对象)

 

 代码1:

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});
 
document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

  

 

 代码2:

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
 
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

  

 

posted @ 2019-08-01 18:39  黑使  阅读(219)  评论(0编辑  收藏  举报