Rumah hujung hadapan web tutorial js 利用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";
        }
    }

}
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kitaran hayat servlet dibahagikan kepada beberapa peringkat Kitaran hayat servlet dibahagikan kepada beberapa peringkat Feb 23, 2023 pm 01:46 PM

Kitaran hayat Servlet merujuk kepada keseluruhan proses daripada penciptaan kepada pemusnahan servlet, yang boleh dibahagikan kepada tiga peringkat: 1. Peringkat permulaan, memanggil kaedah init() untuk memulakan Servlet 2. Peringkat berjalan (permintaan pemprosesan), bekas akan Meminta untuk mencipta objek ServletRequest yang mewakili permintaan HTTP dan objek ServletResponse yang mewakili respons HTTP, dan kemudian menghantarnya sebagai parameter kepada kaedah Servlet's service() 3. Fasa pemusnahan.

Apa itu servlet Apa itu servlet Jan 28, 2023 am 09:51 AM

Nama penuh Servlet ialah "Java Servlet", yang bermaksud program perkhidmatan kecil atau penyambung perkhidmatan dalam bahasa Cina Ia adalah program yang dijalankan pada pelayan Web atau pelayan aplikasi Ia berfungsi sebagai permintaan daripada pelayar Web atau klien HTTP lain dan a pangkalan data pada pelayan HTTP atau Lapisan tengah antara aplikasi. Servlet mempunyai ciri-ciri bebas daripada platform dan protokol Fungsi utamanya adalah untuk menyemak imbas dan menjana data secara interaktif dan menjana kandungan Web yang dinamik.

Bagaimanakah Java Servlet melaksanakan pengurusan sesi teragih? Bagaimanakah Java Servlet melaksanakan pengurusan sesi teragih? Apr 16, 2024 pm 02:48 PM

Terdapat dua kaedah untuk melaksanakan pengurusan sesi teragih dalam JavaServlet: 1. Replikasi sesi: Salin data sesi ke setiap pelayan. 2. Pengagihan sesi: Gunakan perkhidmatan storan berpusat untuk menyimpan data sesi dan mengaksesnya daripada berbilang pelayan. Kaedah pelaksanaan khusus ialah: replikasi sesi dikonfigurasikan benar dalam data sesi web.

Apakah senario aplikasi Java Servlet? Apakah senario aplikasi Java Servlet? Apr 17, 2024 am 08:21 AM

JavaServlet boleh digunakan untuk: 1. Penjanaan kandungan dinamik 2. Akses dan pemprosesan borang; Contoh: Cipta FormSubmitServlet untuk mengendalikan penyerahan borang, menggunakan nama dan e-mel sebagai parameter dan mengubah hala ke success.jsp.

Timbunan teknologi Java untuk pembangunan web: Fahami Java EE, Servlet, JSP, Spring dan teknologi lain yang biasa digunakan dalam pembangunan web Timbunan teknologi Java untuk pembangunan web: Fahami Java EE, Servlet, JSP, Spring dan teknologi lain yang biasa digunakan dalam pembangunan web Dec 26, 2023 pm 02:29 PM

Timbunan teknologi pembangunan JavaWeb: Master JavaEE, Servlet, JSP, Spring dan teknologi lain yang digunakan untuk pembangunan Web Dengan perkembangan pesat Internet, dalam bidang pembangunan perisian hari ini, pembangunan aplikasi Web telah menjadi keperluan teknikal yang sangat penting. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java juga memainkan peranan penting dalam bidang pembangunan Web. Timbunan teknologi pembangunan JavaWeb melibatkan pelbagai teknologi, seperti JavaEE, Servlet, JSP, Spr

Ralat Java: Ralat Servlet, Cara Menyelesaikan dan Mengelak Ralat Java: Ralat Servlet, Cara Menyelesaikan dan Mengelak Jun 25, 2023 pm 06:34 PM

Servlet ialah teknologi yang sangat biasa digunakan dalam pembangunan aplikasi Web Java. Walau bagaimanapun, beberapa ralat Servlet pasti akan berlaku semasa proses pembangunan Bagaimana untuk menyelesaikan dan mengelakkan ralat Servlet telah menjadi isu utama bagi banyak pembangun Java. Artikel ini akan memperkenalkan beberapa ralat Servlet biasa dan penyelesaiannya berdasarkan pengalaman peribadi dan maklumat berkaitan. ClassNotFoundException Apabila kita cuba memuatkan kelas, jika kelas itu tidak wujud atau tidak boleh diakses oleh sistem,

Antara muka HttpSession dalam Servlet Antara muka HttpSession dalam Servlet Sep 02, 2023 am 10:05 AM

Dalam dunia pembangunan Web Java, memahami antara muka HttpSession adalah kunci untuk mencipta aplikasi web yang dinamik dan responsif. Dalam artikel ini, kami akan meneroka apakah antara muka HttpSession, cara ia berfungsi dan sebab ia memainkan peranan penting dalam spesifikasi Servlet. Apakah antara muka HttpSession? Pada terasnya, antara muka HttpSession ialah komponen asas API JavaServlet, yang membolehkan pembangun web menjejak sesi pengguna merentas berbilang permintaan HTTP. Apabila pengguna mengakses aplikasi web buat kali pertama, sesi unik dicipta untuk mewakili interaksi mereka. Sesi ini membolehkan aplikasi mengekalkan keadaan antara permintaan dan mengingati maklumat tentang

Bagaimana untuk mengkonfigurasi Servlet secara manual untuk dijalankan di Tomcat di Java? Bagaimana untuk mengkonfigurasi Servlet secara manual untuk dijalankan di Tomcat di Java? Apr 26, 2023 am 09:55 AM

1. Kerja penyediaan adalah seperti yang ditunjukkan di bawah Pertama, buat setiap fail jika anda fikir ia boleh dijalankan, anda salah (saya terperangkap di sini pada awalnya idea untuk mencipta aplikasi servlet, anda mesti Anda akan mendapati bahawa web.xml yang disediakan di sini tidak lengkap sama sekali Sila gunakan kod berikut untuk memasukkan tag servlet yang disebutkan di atas //Tambahkan kod tag servlet yang disebutkan di atas di sini 2. Masalah dengan pengekodan fail yang disusun adalah seperti di atas Saya ingin menyusunnya pada mulanya, tetapi ralat telah dilaporkan. Sebab di sini ialah javac akan membaca kod fail sumber mengikut pengekodan sistem pengendalian anda, dan komputer saya lalai ke GBK. , tetapi kita semua menulis kod sumber ini dalam Notepad, dan Notepad menggunakan UTF-8 secara lalai

See all articles