用了很长时间的ajax,自己也写过原生ajax请求,但是发现自己对于ajax理解仍然非常肤浅。
1.ajax请求后,服务器会返回数据,返回头中content-type直接影响responseXML,responseText的取值,如果对mime类型非常确定,可以使用overrideMimeType来写死文档类型。
2.用jQuery的ajax时,不管是get还是post,我们通常都可以传一个data对象进去,但是原生ajax下,却是大大不同。
get:send参数必须为空或者null,参数写入url中
post: send参数可以为对象,文本,但是必须要设置setRequestHeader(‘content-type‘, ‘text/plain;charset=UTF-8‘)
或者setRequestHeader(‘content-type‘, ‘application/json‘)/setRequestHeader(‘content-type‘, ‘application/x-www.form-urlencoded‘)等等。不然xhr会自动设置合适的头。比如发送xml格式数据时候不必要设置content-type(所以它叫ajax——asychronous javascript and xml),发送的参数中如果包含File或者是一个FormData对象,也会自动设置content-type为‘multipart/form-data‘
时间: 2024-10-13 03:58:22