Dieses Mal zeige ich Ihnen, wie Sie Ajax implementieren, um Anfragen zu senden, aber keinen Erfolg einzugeben, und welche Vorsichtsmaßnahmen es gibt, um Ajax zu implementieren, um Anfragen zu senden, aber keinen Erfolg einzugeben. Das Folgende ist ein praktischer Fall: Werfen wir einen Blick darauf.
1. Situationsbeschreibung: Ajax wurde erfolgreich gesendet, der Hintergrund hat auch erfolgreich auf die Anfrage geantwortet und JSON-Daten zurückgegeben Überwachen Sie die Anfrage über Chrome Data, geben Sie jedoch nicht die Erfolgsmethode ein, sondern wechseln Sie zur Fehlermethode
Frontend:
$.ajax({ type : "get", data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : "${ctp}/ViewOperate/ShowViewSql", dataType : "json", success : function(data){ console.log(data); layer.alert(data,{ skin: 'layui-layer-molv' }); } error : function(data){ layer.alert("进入了error方法",{ skin: 'layui-layer-molv' }); } });
Backend:
@RequestMapping(value="/ShowViewSql",method=RequestMethod.GET) @ResponseBody public String showCreateViewSql(@RequestParam(value="dbId",required=false)Integer dbId, @RequestParam(value="viewId",required=false)Integer viewId) { return "abc"; }
Ursache: Die vom Hintergrund zurückgegebenen JSON-Daten sind ein reiner String Typ Objekt: Wenn das Front-End-Attribut dataType auf JSON gesetzt ist, wird davon ausgegangen, dass das vom String-Objekt konvertierte JSON-Datenformat kein Standard-JSON-Format ist Die dem Fehler entsprechende Methode wird ausgeführt.
Lösung: Das Backend muss nicht geändert werden. Setzen Sie einfach das dataType-Attribut in der Front-End-Ajax-Anfrage auf Text
$.ajax({ type : "get", data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : "${ctp}/ViewOperate/ShowViewSql", dataType : "text", success : function(data){ console.log(data); layer.alert(data,{ skin: 'layui-layer-molv' }); } error : function(data){ layer.alert("进入了error方法",{ skin: 'layui-layer-molv' }); } });
Sonderfall: Wenn die vom Backend zurückgegebene JSON-Nummer „1“, „2“, „22“, „232123“, „-1“, „232123.44“ ähnelt numberString, wenn das Front-End-Attribut dataType auf json gesetzt ist, kann die Erfolgsmethode normal eingegeben werden. Der Grund ist unbekannt.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.
Empfohlene Lektüre:
Schritte zur Implementierung der autorisierten Anmeldung auf der WeChat-Webseite mit Ajax (mit Code)
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Ajax, um eine Anfrage ohne Erfolg zu senden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!