Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie Ajax, um eine Anfrage ohne Erfolg zu senden

So implementieren Sie Ajax, um eine Anfrage ohne Erfolg zu senden

php中世界最好的语言
php中世界最好的语言Original
2018-03-30 15:30:441024Durchsuche

Dieses Mal zeige ich Ihnen, wie Sie Ajax implementieren, um Anfragen zu senden, aber keinen Erfolg einzugeben, und welche Vorsichtsmaßnahmen es gibt, um Ajax zu implementieren, um Anfragen zu senden, aber keinen Erfolg einzugeben. Das Folgende ist ein praktischer Fall: Werfen wir einen Blick darauf.

1. Situationsbeschreibung: Ajax wurde erfolgreich gesendet, der Hintergrund hat auch erfolgreich auf die Anfrage geantwortet und JSON-Daten zurückgegeben Überwachen Sie die Anfrage über Chrome Data, geben Sie jedoch nicht die Erfolgsmethode ein, sondern wechseln Sie zur 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";
}

Ursache: Die vom Hintergrund zurückgegebenen JSON-Daten sind ein reiner String Typ Objekt: Wenn das Front-End-Attribut dataType auf JSON gesetzt ist, wird davon ausgegangen, dass das vom String-Objekt konvertierte JSON-Datenformat kein Standard-JSON-Format ist Die dem Fehler entsprechende Methode 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 „1“, „2“, „22“, „232123“, „-1“, „232123.44“ ähnelt numberString, wenn das Front-End-Attribut dataType auf json gesetzt ist, kann die Erfolgsmethode normal eingegeben werden. Der Grund ist unbekannt.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

Verwendung von Ajax und Formularen zur Implementierung der für registrierte Benutzer erforderlichen Funktionen

Schritte zur Implementierung der autorisierten Anmeldung auf der WeChat-Webseite mit Ajax (mit Code)

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Ajax, um eine Anfrage ohne Erfolg zu senden. 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