ajax请求的数据格式有哪些?

ajax请求的数据格式有哪些?,第1张

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

语法:

    jQuery.ajax([settings])

参数描述:

  settings    可选。用于配置 Ajax 请求的键值对集合。可以通过 $.ajaxSetup() 设置任何选项的默认值。    

参数:

options

  类型:Object

  可选。AJAX 请求设置。所有选项都是可选的。

async:

    类型:Boolean

    默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

beforeSend(XHR):

    类型:Function

    发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。

    XMLHttpRequest 对象是唯一的参数。

    这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。

cache:

    类型:Boolean

    默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。

jQuery 1.2 新功能。

complete(XHR, TS)

类型:Function

    请求完成后回调函数 (请求成功或失败之后均调用)。

    参数: XMLHttpRequest 对象和一个描述请求类型的字符串。

    这是一个 Ajax 事件。

contentType

    类型:String

    默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。

    默认值适合大多数情况。如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发送给服务器(即使没有数据要发送)。

context

    类型:Object

    这个对象用于设置 Ajax 相关回调函数的上下文。也就是说,让回调函数内 this 指向这个对象(如果不设定这个参数,那么 this 就指向调用本次 AJAX 请求时传递的 options 参数)。比如指定一个 DOM 元素作为 context 参数,这样就设置了 success 回调函数的上下文为这个 DOM 元素。

Ajax向服务器发送请求

Ajax对象创建完成后,下面就要讲解一下Ajax如何使用。首先详细讲解一下Ajax向服务器发送请求所需的两个方法,具体如下:

(1)open()方法

open()方法用于创建一个新的HTTP请求,并指定此请求的类型(如GET、POST等)、URL以及验证信息,其声明方式如下所示:

在上述声明中,method用于指定请求的类型,其值可为POST、GET、PUT及PROPFIND,大小写不敏感URL表示请求的地址,可以为绝对地址也可以为相对地址,并且可以传递查询字符串。其余参数为可选参数,其中,asyncFlagy用于指定请求方式,同步请求为false,默认为异步请求trueuserName用于指定用户名,password用于指定密码。

(2)send()方法

send()方法用于发送请求到HTTP服务器并接收回应。其声明方式如下所示:

在上述声明中,content用于指定要发送的数据,其值可为DOM对象的实例、输入流或字符串,一般与POST请求类型配合使用,需要注意的是,如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。

需要注意的是,在使用GET方式传递特殊字符或中文参数时,要使用JavaScript中的encodeURIComponent()函数将其转换成“%十六进制数”的形式,防止在某些浏览器(如IE浏览器)中中文乱码的问题。

Ajax接收服务器返回的信息

了解Ajax向服务器发送请求后,下面将对Ajax如何接收服务器返回的信息(例如,HTML标签、CSS样式、字符串、XML、JSON等),进行详细讲解。具体如下:

(1)readyState属性

readyState属性用于返回Ajax的当前状态,状态值有5种形式,具体如表所示。

(2)onreadystatechange属性

onreadystatechange事件属性用于感知readyState属性状态的改变。为了大家更好的理解这两个属性的使用,下面创建一个服务器端的文件index.php,用于输出字符串,然后在浏览器端index.html中向服务器端发送请求,并在控制台输出状态值。具体示例如下所示:

创建服务器端文件:index.php

创建浏览器端文件:index.html

在浏览器中访问客户端文件,按“F12”键,切换到控制台,查看输出结果,具体如下图所示。

从图中可以看出,通过onreadystatechange事件属性可以清晰的感知Ajax状态的改变,同时使用readyState获取转变后的状态值。例如Ajax从0(未初始化)状态变成1(初始化)状态值时,Ajax此时的状态值为1。

(3)status属性

status属性用于返回当前请求的HTTP状态码,常见的状态码如表所示。

值得一提的是,在感知当前Ajax对象状态时,为了追求程序的严谨性,需要同时判断当前HTTP状态status是否等于200(请求成功)。

需要注意的是,Ajax中的statusText属性,仅当数据发送并接收完毕后,才可以获取当前请求的响应状态。

(4)获取响应信息的相关属性

当数据接收完毕且请求服务器的请求成功时,即可以使用Ajax中提供的相关属性获取服务器的响应信息。具体的属性及相关说明如下表所示。

在上表中,responseText属性用于返回文本格式的响应数据属性responseBody表示直接从服务器返回并未经解码的二进制数据responseXML属性用于接收XML数据格式的响应数据。

ajax

1.什么是ajax

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

2.阻止ajax缓存才能实时更新

  ajax('aaa.txt?='+new Date().getTime(),//能够实时更新不用刷新

function(str)

{

alert(str)

},

function()

{

  alert(’读取失败‘

})

3.提交方式

get:通过网址放到url里,安全性低,容量小  更适合于获取

post:http content ,容量大 更适合于给服务器上传

4.创建ajax

  1)创建ajax对象

  2) 链接到服务器

  3)发送请求

  4)接受返回值

function ajax(url, fnSucc, fnFaild)

{

//1.创建Ajax对象

if(window.XMLHttpRequest)

{

var oAjax=new XMLHttpRequest()

}

else

{

var oAjax=new ActiveXObject("Microsoft.XMLHTTP")

}

//2.连接服务器

//open(方法, 文件名, 异步传输)

oAjax.open('GET', url, true)

//3.发送请求

oAjax.send()

//4.接收返回

oAjax.onreadystatechange=function ()

{

//oAjax.readyState //浏览器和服务器,进行到哪一步了

if(oAjax.readyState==4) //读取完成  

{

if(oAjax.status==200) //成功  atus:http状态码

{

fnSucc(oAjax.responseText)

}

else

{

if(fnFaild)

{

fnFaild(oAjax.status)

}

//alert('失败:'+oAjax.status)

}

}

}

}

在jquery中封装好了ajax给我们调用,用$.ajax调用,具体参数见

https://www.cnblogs.com/cvst/articles/5817916.html

同时,今天练习了ajax与php分别用xml json 格式传输数据

用json的时候有个地方太坑人了

就是key/value 中只能识别双引号,所以在js中最好也都用双引号

判断传输的数据是什么类型


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/495203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存