package org.xh.Servlet; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.Enumeration; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class AjaxProxyServlet */ public class AjaxProxyServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AjaxProxyServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter pw = response.getWriter(); Enumeration paramNames = request.getParameterNames(); StringBuffer bfParams = new StringBuffer(); bfParams.append(request.getParameter("url")).append("?1=1"); while(paramNames.hasMoreElements()) { String param = (String)paramNames.nextElement(); if("url".equals(param)){continue;} bfParams.append("&").append(param).append("=").append(request.getParameter(param)); } HttpURLConnection huc = null; try { // 取得连接 huc = (HttpURLConnection) new URL(bfParams.toString()) .openConnection(); // 设置连接属性 huc.setDoOutput(true); huc.setRequestMethod("POST"); huc.setUseCaches(false); huc.setInstanceFollowRedirects(true); huc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); huc.setConnectTimeout(50000); huc.setReadTimeout(50000); huc.connect(); // 参数 // DataOutputStream out = new DataOutputStream(huc // .getOutputStream()); // // The URL-encoded contend // // 正文,正文内容其实跟get的URL中'?'后的参数字符串一致 // String content = "sheng_code=" + URLEncoder.encode("江苏", "utf-8"); // // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面 // out.writeBytes(content); // // out.flush(); // out.close(); // flush and close // 取得页面输出,并设置页面编码及缓存设置 response.setContentType(huc.getContentType()); response.setHeader("Cache-Control", huc.getHeaderField("Cache-Control")); response.setHeader("Pragma", huc.getHeaderField("Pragma")); response.setHeader("Expires", huc.getHeaderField("Expires")); BufferedReader reader = new BufferedReader(new InputStreamReader( huc.getInputStream(), "utf-8")); String line; while ((line = reader.readLine()) != null) { pw.write(line); } reader.close(); } catch (Exception e) { pw.write("outTime"); e.printStackTrace(); }finally{ huc.disconnect(); pw.flush(); pw.close(); } } }
调用:
function getDq() { var str = jQuery("#name").val(); $.ajax({ type : "post", async:false, data:{str : encodeURI(str),url:"访问地址"}, url : "http://localhost:8080/m/AjaxProxyServlet", success : function(data){ if("outTime"!=data){ alert(data); }else{ alert("网络连接超时!"); } }, error:function(){ alert('fail'); } }); }
相关推荐
Jquery跨域访问Web服务的demo源码
通过jquery的ajax处理跨域请求的DEMO,代码比较简单,仅供学习参考。
基于ajax方式的跨域请求jsonp的前后台代码
一个ajax跨域请求的demo实例,前端采用jquery的ajax,后端采用tomcat集成的HttpServlet的方法接受前端的数据和返回数据
AJAX(XMLHttpRequest)进行跨域请求方法详解
基于jQuery的jsonp ajax跨域请求,
html通过 ajax jsonp跨域请求接收和传送数据 使用HTML页面与后台跨域交互,获得后台数据或传输数据给后台
ajax跨域请求,jsp页面+后台实例。
H5的video标签跨域.HTML的video标签跨域 我们都知道HTML video标签能播放视频 但是如果你的video要播放的是非当前域名下的视频文件,这就要跨域播放视频, 应该如何实现呢?
NULL 博文链接:https://x125858805.iteye.com/blog/2215862
一个c# ajax跨域的demo,解决c# ajax 跨域的问题
ajax跨域请求解决方案。有详细配置方案,轻松解决ajax请求数据是的跨域问题。
使用juery提交表单,实现ajax跨域请求
ajax跨域请求WebService.asmx,程序非常完美的跑起来了。辛苦了一下午整理出来的。怕的就是以后自己忘记了。
PHP AJAX JSONP实现跨域请求使用范例
一般的解决方案是使用服务器代理(由同域服务器跨域请求后返回),但导致过于复杂(参见:Java-webservice-CXF-SOAP服务.docx服务器代理)。 如果服务器能够操作,也可以使用JSONP允许跨域请求。
ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交、返回都正常 XMLHttpRequest.status=200 (正常响应) XMLHttpRequest.readyState=4 (正常接收) ajax也会提示一个parse...
实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。 本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明(深层次的配置我也不会)。 CORS将请求分为简单请求和非简单...
利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考