前端在調(diào)接口的時(shí)候,經(jīng)常會(huì)出現(xiàn)返回500錯(cuò)誤的問(wèn)題。但是用postman調(diào)接口卻是沒(méi)問(wèn)題的森缠,這說(shuō)明自己的寫法或是傳參有問(wèn)題。
經(jīng)過(guò)自己多次總結(jié)仪缸,發(fā)現(xiàn)問(wèn)題主要集中在Content-Type這個(gè)屬性上贵涵。
postman返回結(jié)果說(shuō)明
任何時(shí)候開始寫代碼掉接口之前,應(yīng)該先用postman調(diào)一下腹殿。如果postman返回結(jié)果是ok的独悴,說(shuō)明接口沒(méi)問(wèn)題。反之接口有問(wèn)題锣尉。
下面是接口返回正確結(jié)果后的內(nèi)容刻炒。
Access-Control-Allow-Credentials →true
Access-Control-Allow-Headers →Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Origin →*
Access-Control-Request-Methods →GET,POST,HEAD,PUT,OPTIONS,DELETE,TRACE,CONNECT,MOVE,PROXY
Content-Length →16
Content-Type →application/json
Date →Tue, 02 May 2017 10:58:32 GMT
Server →Werkzeug/0.12.1 Python/2.7.6
注意到Content-Type→application/json。此處是后臺(tái)返回的數(shù)據(jù)類型自沧。
參考文章: http://blog.csdn.net/calyxmelo/article/details/54969244
不使用contentType: “application/json”則data可以是對(duì)象
$.ajax({
url: actionurl,
type: "POST",
datType: "JSON",
data: { id: nodeId },
async: false,
success: function () {}
});
使用contentType: “application/json”則data只能是json字符串坟奥,也就是要對(duì)對(duì)象格式化為字符串,通常使用 var newObj=JSON.stringify(obj)
$.ajax({
url: actionurl,
type: "POST",
datType: "JSON",
contentType: "application/json"
data: "{'id': " + nodeId +"}",
async: false,
success: function () {}
});
data也可以這樣寫:
data:JSON.stringify({'id': + nodeId })
在Postman中調(diào)接口時(shí)拇厢,注意text類型爱谁。
個(gè)人猜想:如果是text類型,那么需要將JSON.stringify(obj)格式化為文本
如果是其他類型呢孝偎?data數(shù)據(jù)該怎么處理访敌?
無(wú)奈自己不懂后端,很多想法無(wú)法驗(yàn)證衣盾。