Dieser Artikel teilt Ihnen hauptsächlich eine Lösung für das Problem mit, dass die Ajax-Anfrage erfolgreich gesendet wird, aber nicht erfolgreich ist. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich ist. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
1. Situationsbeschreibung: Ajax wurde erfolgreich gesendet, der Hintergrund antwortet auch erfolgreich auf die Anfrage und gibt JSON-Daten zurück, indem Sie die Anfrage über Chrome überwachen Die Erfolgsmethode wurde nicht eingegeben. Stattdessen wurde die Fehlermethode
Front-End:
$.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' }); } });
Back-End:
@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: Der JSON angezeigt Die vom Hintergrund zurückgegebenen Daten sind ein reines Objekt vom Typ String. Wenn das Front-End-Attribut dataType auf json gesetzt ist, wird davon ausgegangen, dass das aus dem String-Objekt konvertierte JSON-Datenformat nicht das Standard-JSON-Format ist, daher entspricht die Methode dem Fehler 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 lautet Ähnlich wie „1“, „2“, „22“, „232123“, „-1“, „232123.44“ handelt es sich um eine numerische Zeichenfolge. Wenn das Front-End-DataType-Attribut auf JSON gesetzt ist, kann die Erfolgsmethode eingegeben werden Normalerweise ist der Grund unbekannt.
Verwandte Empfehlungen:
Eine kurze Analyse des Problems der JSON-Daten, die vom Ajax-Hintergrunderfolg übertragen werden
Überblick über Erfolg und Fehler Methoden des ThinkPHP-Seitensprungs _PHP-Tutorial
Der Unterschied zwischen Erfolg und Vollständigkeit in jQuery.ajax
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass eine Ajax-Anfrage erfolgreich gesendet wird, aber nicht erfolgreich ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!