利用JQuery和Servlet实现跨域提交请求示例分享_jquery
原理: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
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";
}
}
}

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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.

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.

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.

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 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

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,

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

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
