Maison interface Web js tutoriel 利用JQuery和Servlet实现跨域提交请求示例分享_jquery

利用JQuery和Servlet实现跨域提交请求示例分享_jquery

May 16, 2016 pm 05:00 PM
servlet

原理:JavaScript的Ajax不可以跨域,但是可以通过向本地的一个Servlet发出请求,由Servlet完成跨域。再把远程的结构返回给客户端。这样Ajax就可以跨域了。在后面,再发一个PHP版本的,请大家关注啊。下面是代码

JS代码:

注意:在Post方式时,param1和param2为向远程发送的参数值,可以有多个。

复制代码 代码如下:

//GET方式
function reqeustCrossDomainProxyGet(){
    var url = "http://www.baidu.com";//远程请求地址
    var param = {'requesturl':url,'typedata':'JSON'};
    var data = getCrossDomainProxyRemote(param,"json");
}
//Post方式
function reqeustCrossDomainProxyPost(param1,param2){
    var url = apiServer+"/api/lucene/query";
    var param = {'requesturl':url,'typedata':'JSON','param1':param1,'param2':param2};
    var data = getCrossDomainProxyRemote(param,"json");
}

/**
 * JS向本址的一个Servlet发送POST请求,所有关于远程请求的参数。
 * 在此处参POST方式发送给Servlet
 * @param param 远程请求参数
 * @param rtype JS返回类型(暂时没有用到)
 * @return
 */
function getCrossDomainProxyRemote(param,rtype){
    var url = "/cross/proxy";//Servlet的URL地址
    var returndata;
    $.ajax({
        url: url,type: 'POST',dataType: rtype,timeout: 40000,data:param, async:false,
        error: function(response,error) {alert(response.status);},
        success: function(data){returndata=data;}
    });
    return returndata;
}

Java代码:

复制代码 代码如下:

public class CorssDomainProxy extends HttpServlet {

    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doPost(req, resp);    
    }

    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        boolean requestType = false;//标记远程请求类型,默认为GET方式
        PrintWriter out = resp.getWriter();
        Enumeration keys = req.getParameterNames();//取出客户端传入的所有参数名
        ArrayList params = new ArrayList();
        String url=null;
        while (keys.hasMoreElements()){
            String key = (String) keys.nextElement();
            /**
             * 如果请求参数内有如下几种表示,这此参数不参与远程请求
             */
            if(key.equals("requesturl")){//判断参数是否是,远程请求地址
                url = req.getParameter(key);
            }else if(key.equals("typedata")){//判断请求数据类型,暂时没有用到

            }else if(key.equals("returntype")){//判断请求返回类型,暂时没有用到

            }else{
                params.add(key);//其它加入参数列表,此处为参与远程请求的参数
                requestType = true;//修改标记,表求远程请求为POST方式
            }
        }

        HttpClient client = new HttpClient();
        HttpMethod method = null;
        if(requestType){//判断请求方式,并实例化HttpMethod对象,true:POST,false:GET
            method = new UTF8PostMethod(url);
            for(String name : params){//迭代POST参数,加入到请求中
                String _value = req.getParameter(name);
                ((PostMethod)method).setParameter(name,_value);
            }
        }else{
            method = new GetMethod(url);
        }      
        client.executeMethod(method);//执行请求
        String bodystr = method.getResponseBodyAsString();//返回结果
        out.println(bodystr);//将结果返回给客户端
    }

    /**
     * 内部类,转换URL字符串为UTF-8
     * @author Administrator
     *
     */
    private static class UTF8PostMethod extends PostMethod {
        public UTF8PostMethod(String url) {
            super(url);
        }
        @Override
        public String getRequestCharSet() {
            return "UTF-8";
        }
    }

}
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le cycle de vie d'une servlet est divisé en plusieurs étapes Le cycle de vie d'une servlet est divisé en plusieurs étapes Feb 23, 2023 pm 01:46 PM

Le cycle de vie d'un servlet fait référence à l'ensemble du processus depuis la création jusqu'à la destruction d'un servlet, qui peut être divisé en trois étapes : 1. L'étape d'initialisation, appelant la méthode init() pour initialiser le servlet. 2. L'étape d'exécution (traitement des requêtes) ; le conteneur demandera de créer un objet ServletRequest représentant une requête HTTP et un objet ServletResponse représentant une réponse HTTP, puis les transmettra en paramètres à la méthode service() de la phase de destruction du Servlet ;

Qu'est-ce qu'une servlet Qu'est-ce qu'une servlet Jan 28, 2023 am 09:51 AM

Le nom complet de Servlet est « Java Servlet », ce qui signifie petit programme de service ou connecteur de service en chinois. Il s'agit d'un programme exécuté sur un serveur Web ou un serveur d'applications. Il sert de requête provenant d'un navigateur Web ou d'un autre client HTTP. base de données sur le serveur HTTP ou La couche intermédiaire entre les applications. Servlet a la particularité d'être indépendant de la plateforme et du protocole. Sa fonction principale est de parcourir et de générer des données de manière interactive et de générer du contenu Web dynamique.

Comment Java Servlet implémente-t-il la gestion de session distribuée ? Comment Java Servlet implémente-t-il la gestion de session distribuée ? Apr 16, 2024 pm 02:48 PM

Il existe deux manières d'implémenter la gestion de session distribuée dans JavaServlet : 1. Réplication de session : copiez les données de session sur chaque serveur. 2. Distribution de session : utilisez un service de stockage centralisé pour stocker les données de session et y accéder à partir de plusieurs serveurs. Les méthodes d'implémentation spécifiques sont les suivantes : la réplication de session configure true dans les données de session Web.

Quels sont les scénarios d'application de Java Servlet ? Quels sont les scénarios d'application de Java Servlet ? Apr 17, 2024 am 08:21 AM

JavaServlet peut être utilisé pour : 1. Génération de contenu dynamique ; 2. Accès et traitement des données ; 3. Traitement de formulaires ; 5. Gestion de sessions ; Exemple : créez un FormSubmitServlet pour gérer la soumission du formulaire, en prenant le nom et l'adresse e-mail comme paramètres et en redirigeant vers success.jsp.

Pile technologique Java pour le développement Web : comprendre Java EE, Servlet, JSP, Spring et d'autres technologies couramment utilisées dans le développement Web. Pile technologique Java pour le développement Web : comprendre Java EE, Servlet, JSP, Spring et d'autres technologies couramment utilisées dans le développement Web. Dec 26, 2023 pm 02:29 PM

Pile technologique de développement JavaWeb : maîtrisez JavaEE, Servlet, JSP, Spring et d'autres technologies utilisées pour le développement Web. Avec le développement rapide d'Internet, dans le domaine actuel du développement logiciel, le développement d'applications Web est devenu une exigence technique très importante. En tant que langage de programmation largement utilisé, Java joue également un rôle important dans le domaine du développement Web. La pile technologique de développement JavaWeb implique plusieurs technologies, telles que JavaEE, Servlet, JSP, Spr

Erreur Java : erreur de servlet, comment résoudre et éviter Erreur Java : erreur de servlet, comment résoudre et éviter Jun 25, 2023 pm 06:34 PM

Le servlet est une technologie très couramment utilisée dans le développement d'applications Web Java. Cependant, certaines erreurs de servlet se produiront inévitablement au cours du processus de développement. Comment résoudre et éviter les erreurs de servlet est devenu un problème majeur pour de nombreux développeurs Java. Cet article présentera quelques erreurs courantes de servlet et leurs solutions basées sur l'expérience personnelle et les informations associées. ClassNotFoundException Lorsque nous essayons de charger une classe, si la classe n'existe pas ou n'est pas accessible au système,

Interface HttpSession dans Servlet Interface HttpSession dans Servlet Sep 02, 2023 am 10:05 AM

Dans le monde du développement Web Java, la compréhension de l'interface HttpSession est essentielle pour créer des applications Web dynamiques et réactives. Dans cet article, nous explorerons ce qu'est l'interface HttpSession, comment elle fonctionne et pourquoi elle joue un rôle crucial dans la spécification Servlet. Qu'est-ce que l'interface HttpSession ? À la base, l'interface HttpSession est un composant fondamental de l'API JavaServlet, qui permet aux développeurs Web de suivre la session d'un utilisateur sur plusieurs requêtes HTTP. Lorsqu'un utilisateur accède à une application Web pour la première fois, une session unique est créée pour représenter son interaction. Cette session permet à l'application de maintenir l'état entre les requêtes et de mémoriser les informations sur

Comment configurer manuellement le servlet pour qu'il s'exécute dans Tomcat en Java ? Comment configurer manuellement le servlet pour qu'il s'exécute dans Tomcat en Java ? Apr 26, 2023 am 09:55 AM

1. Le travail de préparation est comme indiqué ci-dessous. Tout d'abord, créez chaque fichier selon vos besoins. Si vous pensez qu'il peut fonctionner, vous vous trompez (j'étais coincé ici au début de la structure du projet). idée pour créer des applications de servlet, vous devez Vous constaterez que le web.xml fourni ici n'est pas complet du tout. Veuillez utiliser le code suivant pour inclure la balise de servlet mentionnée ci-dessus //Ajoutez ici le code de la balise de servlet mentionnée ci-dessus 2. Le problème avec l'encodage du fichier compilé est le même que ci-dessus. Je voulais le compiler au début, mais une erreur a été signalée. La raison ici est que javac lira le code du fichier source en fonction de l'encodage de votre système d'exploitation et que mon ordinateur utilise par défaut GBK. , mais nous écrivons tous ces codes sources dans le Bloc-notes, et le Bloc-notes utilise UTF-8 par défaut.

See all articles