Ajax属性

cache、processData、dataType、contentType

cache:缓存

默认值:true
当发起一次请求后,会把获得的结果以缓存的形式进行存储,当再次发起请求时,如果 cache 的值是 true ,那么会直接从缓存中读取,而不是再次发起一个请求了。
从 cache 的工作原理可以得出,cache 的作用一般只在 get 请求中使用。

processData:处理数据

默认值:true
其代表以对象的形式上传的数据都会被转换为字符串的形式上传。而当上传文件的时候,则不需要把其转换为字符串,因此要改成false。

dataType:接收数据的格式

默认值:json
dataType作用:1、判断是success还是error;2、success方法接受到的数据data的类型。
dataType为预期(expecting)的返回格式,若实际返回格式与预期格式相同 或 预期格式在js中对应的数据类型为String(text、html格式对应的为String,json、xml对应Object),则执行succes,否则被认定为error。
如果content-Type同时是提交数据和返回数据的类型(格式)。即若指定为‘application/json; charset=utf-8’,则返回类型一定为‘json’,此时dataType可省略;未指定则默认返回的是xml格式的数据。

contentType:发送数据的格式

和 contentType 有个类似的属性是 dataType, 代表的是期望从后端收到的数据的格式,一般会有 json 、text……等。
而 contentType 则是与 dataType 相对应的,其代表的是 前端发送数据的格式。

默认值:application/x-www-form-urlencoded
代表的是 ajax 的 data 是以字符串的形式 如 id=2019&password=123456
使用这种传数据的格式,无法传输复杂的数据,比如多维数组、文件等。

有时候要注意,自己所传输的数据格式和ajax的contentType格式是否一致,如果不一致就要想办法对数据进行转换
把contentType 改成 false 就会改掉之前默认的数据格式,在上传文件时就不会报错了。

原文地址:https://www.cnblogs.com/ZerlinM/p/13710409.html