美文网首页
关于ajax 请求的那些参数

关于ajax 请求的那些参数

作者: 天空蓝雨 | 来源:发表于2019-08-14 21:00 被阅读0次

我习惯用FormData 来传递数据,具体用法是

data  = new FormData(form dom)  //这里可以向里面传递一个form表单的元素,会把里面呢 input 以及select 里的值,封装到formdata 对象里面。

ajax  : data:data,

             processData :false,

             contnetType:false

这样才可以哦

下面我们讲讲,ajax 的参数,都有那些吧:

url

默认值:当前页面的 url 

类型:string(字符串) 

含义:ajax 请求发送的目的地址(服务端地址)

type

默认值:’GET’ 

类型:string(字符串) 

含义:请求的方式,可取值为”POST”, “GET”, “PUT”,”HEADER”等

data

默认值:无

类型:PlainObject or String or Array

含义:发送给服务端的数据。

默认情况下,jQuery会在发送之前将data处理为 query string 的格式如“key1=value1&key2=value2“(因为 contentType默认值为‘application/x-www-form-urlencoded;charset=UTF-8’);

若不想要 jQuery进行自动转换(将 data 转换为contentType所指定的格式),则可以通过设置processData=false ,这样 jQuery就不会对 data 进行格式处理了。

dataFilter

类型:function(data,type) 

含义:对服务端返回的响应数据做进一步的过滤处理

accepts

默认值:dataType参数的值 

类型:plainObject(简单对象) 

含义:客户端告诉服务端自己能接收那些类型的响应数据 

async

默认值:true

类型:boolean(布尔值)

含义:表明该 ajax 请求是异步还是同步。异步表示一旦发出这个请求

同步表示发出请求后,程序将暂停等待服务端响应,后面的代码将被阻塞。

直到接收到服务端响应后才继续执行后面的代码。

只需将 async 设置为 false,但由于此用法将阻塞浏览器,所以并不建议使用;

如果要返回请求的数据,就要设置为  false,否则返回  undefined

注意:跨域  dataType:jsonp的ajax请求中,不支持同步ajax请求

cache

默认值:true(但当 dataType为‘jsonp’或者‘script’时,cache默认值将为false)

类型:boolean(布尔值)

含义:当 cache 为 false 时,浏览器将不会缓存请求回来的 pages。当然若你请求的‘jsonp’或者‘script’时,浏览器将默认不缓存。

注意:只有对HEADER/GET类型的ajax请求设置 cache为 false 才有效。

contentType

默认值:’application/x-www-form-urlencoded;charset=UTF-8’

类型:Boolean或String(布尔值/字符串)

含义:此参数用在客户端向服务端发送数据时(包括get、post)。contentType告诉了服务端‘客户端所发送数据的类型’,以帮助服务端解析数据。若你发送的数据不是contentType指定的类型数据,则 jQuery会自动将数据转换成contentType指定的类型(若要阻止jQuery进行自动转换,则设置 processData 为 false )

将contentType设置为 false,jQuery将不会在HTTP头部添加contentType字段。

1若显式设置了该参数,则不管有没有数据,该 ajax 请求都会被发送。

2、客户端发送的数据charset只能是 UTF-8,即使你改成其他值,它还是会使用 UTF-8。

3、对于跨域请求,当contentType不是‘application/x-www-form-urlencoded’, ‘multipart/form-data’, or ‘text/plain’时,浏览器都会先发一个 OPTIONS 请求给服务端,然后才发我们要发的 Ajax 请求

dataType

默认值:无

类型:string 字符串

含义:你想要接收的数据类型,若ajax 请求中显式设置了该参数,但服务端返回的数据类型不是dataType指定的类型时,jQuery将会自动将返回数据处理为 dataType的格式。默认情况下该参数没有设置,则 jQuery会根据 response 的 contentType Header来处理返回的数据(相当于将contenType作为 dataType

processData

默认值:true

类型:boolean 布尔值

含义:若此参数设置为true时,jQuery会将data参数的值处理为contentType参数所指定的格式类型。contentType的默认值为’application/x-www-form-urlencoded;charset=UTF-8’,所以当data参数值为 object 或 array 类型时,jQuery会将 data 数据自动转换为符合’application/x-www-form-urlencoded;charset=UTF-8’格式的数据(即 query string 类型)。当你要发送DOMDocument或者formData时,则应该将processData置为 false,以避免 jQuery对data做自动格式转换处理。

mimeType

默认值:无

类型: string

含义:功能与原生的 XMLHttpRequest.overrideMimeType( )一样,用来覆盖服务端所返回数据的 MIME 类型。比如你想将返回的数据当做‘text/xml’来处理和解析,即使服务端没有指定,则只需要将mimeType置为‘text/xml’

原文链接:https://blog.csdn.net/ruoyiqing/article/details/47285485

以上只是暂时,记录一下,并不全面哦,以后再改吧

如果发送数据  data要怎么设置呢

第一种是:设置contentType :application/json  

data:JSON.stringify({"xx":xx})    // js 对象转json字符串,这样才能配合  contentType  转化为json 类型

第二种是:不设置contentType  (默认为 application/x-www-form-urlencoded;)

data:{"xx":xx}   // 直接传递js 对象,只有js 对象 才能被编码为key-value ,而不是json 字符串


相关文章

网友评论

      本文标题:关于ajax 请求的那些参数

      本文链接:https://www.haomeiwen.com/subject/hnabjctx.html