Im Folgenden werde ich Ihnen eine Lösung für das Problem mitteilen, dass die Ajax-Anfrage erfolgreich gesendet wird, aber nicht erfolgreich ist. Sie hat einen guten Referenzwert und ich hoffe, dass sie für alle hilfreich ist.
1. Situationsbeschreibung: Ajax wurde erfolgreich gesendet, der Hintergrund hat auch erfolgreich auf die Anfrage geantwortet und JSON-Daten zurückgegeben Überwachung der Anforderung über Chrome. Die Daten werden jedoch nicht in die Erfolgsmethode eingegeben, sondern in die 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"; }
Grund: Wenn die vom Hintergrund zurückgegebenen JSON-Daten ein reines String-Objekt sind, wird nach dem Setzen des Front-End-DataType-Attributs auf JSON davon ausgegangen, dass das JSON-Datenformat aus dem String-Objekt konvertiert wurde ist kein Standard-JSON-Format, daher wird die dem Fehler entsprechende Methode 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 ähnlich „1“, „2“, „22“, „232123“ ist ", " -1", "232123.44" numerische Zeichenfolge. Wenn das Front-End-DataType-Attribut auf JSON gesetzt ist, kann die Erfolgsmethode normal eingegeben werden. Der Grund ist unbekannt.
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Struts2- und Ajax-Dateninteraktion (grafisches Tutorial)
Pull-up-Laden geschrieben in nativem Ajax Beispiel (grafisches Tutorial)
MUi-Framework-Ajax-Anfrage-WebService-Schnittstelleinstanz_AJAX-bezogen
Das obige ist der detaillierte Inhalt vonLösung für eine Ajax-Anfrage, die erfolgreich gesendet wurde, aber nicht erfolgreich war (Bild- und Text-Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!