php - Renseignez-vous sur un problème entre href, ajax et redirection
高洛峰
高洛峰 2017-05-16 12:59:05
0
7
603

J'ai rencontré un problème lors du développement aujourd'hui
C'est-à-dire que la fin actuelle href directement une interface (il y a un code de redirection dans l'interface)
De cette façon, vous pouvez rediriger directement

Mais lorsque le front-end utilise ajax pour demander cette interface, elle ne sera pas redirigée

Pourquoi ? Merci d'expliquer le principe

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(7)
左手右手慢动作

ajax lui-même ne peut pas implémenter la redirection.
Vous pouvez modifier le backend pour renvoyer le résultat et exécuter le saut de page après l'avoir jugé dans la fonction de rappel du frontend.
L'idée de base est que le backend détermine si l'en-tête de la requête contient des informations ajax
par exempleisAjax = request.getHeader("x-requested-with").equals("XMLHttpRequest");, puis effectue différentes opérations en fonction de différentes requêtes, comme l'exécution directe d'un saut ou le renvoi des informations sur l'URL du saut, et le front-end saute.

左手右手慢动作

Ma compréhension :
Le premier est le saut d'adresse, et le second est l'interface d'accès au serveur de non-rafraîchissement. Comment peut-il y avoir une redirection lorsque vous accédez uniquement à l'interface sans effectuer de sauts de page ? Ajax est utilisé sans actualisation ?

Assurez-vous de passer du côté client. Les requêtes Ajax provenant de différents navigateurs ne recevront pas le code d'état 3xx.

Peter_Zhu

Ajax fait des requêtes asynchrones. Vous devez déterminer le code d'état et effectuer les opérations correspondantes.

我想大声告诉你

Généralement, les résultats sont renvoyés en fonction du backend puis js saute

Peter_Zhu

ajax peut fonctionner normalement avec le statut 301,
mais le principe est que la même politique d'origine doit être respectée !

Si vous avez ce besoin, vous pouvez laisser le chemin nginx proxy vers l'URL correspondante

我想大声告诉你

ajax à l'origine n'interagit qu'avec le serveur pour les données sans actualiser la page (vous devez comprendre la signification de l'interaction avec les données). En d'autres termes, le client ne reçoit que le contenu généré par l'index/index/api côté serveur. Le code js et les commandes php qu'il contient ne peuvent pas être exécutés
Donc, si vous souhaitez rediriger, cela doit être géré par le front-end. Voici la méthode de gestion correcte :

$.ajax({  
    url : "/index/index/api",  
    type : "post",  
    dataType : "json",  
    data: param,  
    success : function(data) {     
       window.location.href = '/index/index';
    },
    error : function() {
        //假如系統接收json以外格式數據會執行該方法
    }
});
左手右手慢动作

Vous pouvez essayer de modifier async !

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