So lösen Sie das Problem, dass eine Ajax-Anfrage erfolgreich gesendet wird, aber nicht erfolgreich ist

小云云
Freigeben: 2023-03-19 15:20:01
Original
3104 Leute haben es durchsucht

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'
   });
 }
});
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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'
     });
   }
});
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!