加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

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

发布时间:2023-10-09 14:57:18 所属栏目:教程 来源:
导读:原理:JavaScript的Ajax不可以跨域,但是可以通过向本地的一个Servlet发出请求,由Servlet完成跨域。再把远程的结构返回给客户端。这样Ajax就可以跨域了。在后面,再发一个PHP版本的,请大家关注啊。下面是代码
原理: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> params = new ArrayList<String>();
 
        String url=null;
 
        while (keys.hasMoreElements()){
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章