Jquery ContentType的设置

1,301 阅读1分钟

content-type的作用

他的作用是告诉服务器,浏览器发来了什么数据。

引用jquery ajax
一般情况下,我们不需要设置它。默认值为application/x-www-form-urlencoded; charset=UTF-8')

上传文件时,使用Jquery的同学知道,我们会将contentType设置成flase

$.ajax({
...
  processData: false,
  contentType: false,
...
})

咦,请求一发送

request headers1

content-type自动设置成了

Content-Type:multipart/form-data; boundary=----WebKitFormBoundarynXvTC1AHtFbVvKTL

WebKitFormBoundarynXvTC1AHtFbVvKTL这是随机生成的分界符

目的是防止上传文件中出现分界符导致服务器无法正确识别文件起始位置 如果不给Ajax设置contentType,Ajax会自动发送什么content-type呢?

request headers2
发现这是默认的content-type,可知Jquery的ajax的设置机制为若没有content-type属性,则默认设置为 application/x-www-form-urlencoded; charset=UTF-8

设置contentType: false的目的是让Ajax不要操作content-type

参考资料