ajaxt通过jsp代理页面访问获取数据 博客分类: 前端 jsonpAjaxproxyJavaScript
程序员文章站
2024-03-07 12:17:45
...
$.ajax({ url: "proxy.jsp?url="+searchUrl, type: 'GET', dataType: 'JSON', jsonpCallback:"res", data:{ format:'json' }, success: function(res) { var data = res.data; }, error:function(){ alert("获取数据出现问题,请稍候再试!"); } });
<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%><%@page import="org.apache.log4j.Logger"%><%@page session="false"%><%@page import="java.io.InputStream,java.io.OutputStream"%><%@ page import="java.net.HttpURLConnection" %><%@ page import="java.net.URL" %><%@ page import="java.util.Enumeration" %> <% Logger log = Logger.getLogger(this.getClass().getName()); String reqUrl = request.getParameter("url"); if(reqUrl.indexOf("?")<0){ reqUrl = reqUrl + "?1=1"; } Enumeration pNames=request.getParameterNames(); while(pNames.hasMoreElements()){ String name=(String)pNames.nextElement(); if(!name.equalsIgnoreCase("url")){ String value=request.getParameter(name); reqUrl += "&"+name +"="+value; } } HttpURLConnection con = null; try { final int length = 5000; reqUrl=reqUrl.replace(" ", "%20"); URL url = new URL(reqUrl); con = (HttpURLConnection) url.openConnection(); if (request.getContentType() != null) con.setRequestProperty("Content-Type", request.getContentType()); con.setRequestMethod(request.getMethod()); con.setDoOutput(true); int clength = request.getContentLength(); if (clength > 0) { con.setDoInput(true); InputStream istream = request.getInputStream(); OutputStream os = con.getOutputStream(); byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = istream.read(bytes, 0, length)) > 0) { os.write(bytes, 0, bytesRead); } } response.setContentType(con.getContentType()); out.clear(); out = pageContext.pushBody(); OutputStream ostream = response.getOutputStream(); response.setContentType(con.getContentType()); InputStream in = con.getInputStream(); byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = in.read(bytes, 0, length)) > 0) { ostream.write(bytes, 0, bytesRead); } } catch (Exception e) { log.error(reqUrl); log.error(e,e); }finally{ if(con!=null){ con.disconnect(); } } %>