Heim  >  Artikel  >  Web-Frontend  >  Lösung für eine Ajax-Anfrage, die erfolgreich gesendet wurde, aber nicht erfolgreich war (Bild- und Text-Tutorial)

Lösung für eine Ajax-Anfrage, die erfolgreich gesendet wurde, aber nicht erfolgreich war (Bild- und Text-Tutorial)

亚连
亚连Original
2018-05-21 16:28:382985Durchsuche

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!

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