Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem, dass eine Ajax-Anfrage erfolgreich gesendet wird, aber nicht erfolgreich ist

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

小云云
小云云Original
2018-01-19 09:53:383113Durchsuche

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!

Stellungnahme:
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