java - ajax atteint avec succès l'arrière-plan, mais je ne sais pas pourquoi il continue de rappeler la fonction défaillante
漂亮男人
漂亮男人 2017-05-17 10:06:19
0
7
658
function a() {
        $.ajax({
        url : "http://localhost:8080/ubi/checkIntegral",
        async : true,
        data:{"carOwnerID":"111111"},
        dataType : 'json',
        type : 'GET',
        success : function() {
            alert("ss");
        },
        error : function(map){
            alert("FALSE");
        }
    });
}

@RequestMapping(value="/checkIntegral",method = RequestMethod.GET)
@ResponseBody
public  Map<String,Long> checkIntegral(@RequestParam  String carOwnerID ,HttpServletRequest request,HttpServletResponse response){
    Long integral = impl.checkIntegral(Long.valueOf(carOwnerID));
    Map<String,Long> map = new HashMap<String, Long>();
    map.put("msg", integral);
    return map;
}
漂亮男人
漂亮男人

répondre à tous(7)
曾经蜡笔没有小新

Si la demande aboutit et que les données sont renvoyées, cela peut être lié au format incorrect de vos données renvoyées. Parce que vous avez défini dataType : 'json' pour qu'il attende le type de données renvoyé par le serveur. Cela conduit souvent au rappel error. Veuillez exclure les données renvoyées. dataType : 'json' 预期服务器返回的数据类型。这样往往会进入 error 回调。你排除一下返回数据。

而且,error

De plus, error a trois paramètres de rappel, veuillez les imprimer vous-même.

Quelques raisons pour lesquelles Ajax se trompe🎜
曾经蜡笔没有小新

Affichez votre valeur de retour et voyez les données

巴扎黑

HttpServletResponse est en conflit avec le rappel ajax, supprimez simplement HttpServletResponse.

迷茫

Je vois que votre dataType : 'json', exige que le serveur renvoie le format json.
Si les données renvoyées par le serveur ne sont pas au format json, elles entraîneront un échec de rappel.

淡淡烟草味

Configurez votre type de données AJAX : "text", puis utilisez alert(data) pour afficher la valeur de retour

Étant donné que les requêtes Ajax sont différentes des réponses, la page n'a pas besoin d'être affichée après avoir obtenu les données, il n'est donc pas nécessaire que RESPONSE passe à une nouvelle page. Il n'est donc pas nécessaire de RETOURNER, mais d'imprimer sur la page demandée via PrintWriter
@RequestMapping(value="/checkIntegral",method = RequestMethod.GET)
@ResponseBody
public void checkIntegral( @RequestParam String carOwnerID, requête HttpServletRequest, réponse HttpServletResponse){

Long integral = impl.checkIntegral(Long.valueOf(carOwnerID));
    PrintWriter writer=response.getWriter();
    writer.write(String.valueOf(integral));
    writer.flush();
    writer.close();

}

左手右手慢动作

Je n'ai pas remarqué que cet ajax est une requête inter-domaines.

刘奇

Le type de données de votre valeur de retour est json, mais vous lui avez renvoyé une carte en arrière-plan. Convertissez votre carte en json

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal