巧用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()){ (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐