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 就會改掉之前默認的數據格式,在上傳文件時就不會報錯了。