今天遇到了一個看似簡單的問題,但是確實花了我一點時間去調查。
問題的現象時,前臺發送ajax請求更新數據庫的數據,數據庫的數據能成功更新,但是ajax一直返回失敗。
ajax的請求格式如下:
$.ajax({
url:請求資源的url,
type:'POST',
dataType:'json',
data:ko.utils.stringifyJson(要更新的數據),
async: true
}).done(function(data,textStatus,jqXHR){
更新成功
}).fail(function(jqXHR,textStatus,errorThrown){
更新失敗
}).always(function(jqXHR){
});
請求發送了,後臺根據要求進行更新數據庫,都能夠正常執行,後臺返回信息的格式如下:
response.setstatus(200)
response.end()
返回到前臺之後就執行ajax的fail(失敗)函數了。
後來發現問題的所在了,我在發送ajax請求的時候,【dataType】配置的是【json】,即返回的數據格式是json格式的。
而當後臺成功執行操作後,我直接設置了返回的狀態爲200,沒有返回任何數據。所以ajax會返回錯誤。
最後的解決方法就是將【dataType】配置爲【text】,就可以了。