WebService学习笔记-Ajax通过servlet请求跨域Webservice
发布时间:2020-12-16 23:18:49 所属栏目:安全 来源:网络整理
导读:ajax不能直接访问跨域的Webservice,但是可以通过servlet去访问跨域的Webservice 页面 %@?page?language="java"?contentType="text/html;?charset=UTF-8"pageEncoding="UTF-8"%!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w
ajax不能直接访问跨域的Webservice,但是可以通过servlet去访问跨域的Webservice 页面 <%@?page?language="java"?contentType="text/html;?charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"> <title>Insert?title?here</title> <script?type="text/javascript"?src="js/jquery-1.11.1.min.js"></script> <script?type="text/javascript"> //var?url?=?"http://192.168.13.232:8989/ws_01/umgsai"; $(function(){ $("#WebserviceJQuery2").click(function(){ var?name?=?document.getElementById("username").value; $.post("HttpURLConnectionServlet","name="+name,function(msg){ //alert("msg"); var?$Result?=?$(msg); var?value?=?$Result.find("return").text(); alert($Result.text()); },"xml"); }); </script> </head> <body> name: <input?id="username"?name="username"?value=""?/> <button?id="WebserviceJQuery2">Ajax请求Webservice?JQuery?跨域</button> </body> </html> HttpURLConnectionServlet.java package?com.umgsai.servlet; import?java.io.IOException; import?java.io.InputStream; import?java.io.OutputStream; import?java.net.HttpURLConnection; import?java.net.URL; import?javax.servlet.ServletException; import?javax.servlet.ServletOutputStream; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; /** ?*?Servlet?implementation?class?HttpURLConnectionServlet ?*/ public?class?HttpURLConnectionServlet?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?HttpURLConnectionServlet()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?HttpServletResponse?response) ?*/ protected?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{ } /** ?*?@see?HttpServlet#doPost(HttpServletRequest?request,?HttpServletResponse?response) ?*/ protected?void?doPost(HttpServletRequest?request,?IOException?{ String?name?=?request.getParameter("name"); System.out.println("传过来的name:"+name); String?data?=?"<soapenv:Envelope?xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'?xmlns:q0='http://ws.umgsai.com/'?xmlns:xsd='http://www.w3.org/2001/XMLSchema'?xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><soapenv:Body><q0:sayHello><arg0>"?+?name?+?"</arg0></q0:sayHello></soapenv:Body></soapenv:Envelope>"; URL?url?=?new?URL("http://192.168.13.232:8989/ws_01/umgsai"); HttpURLConnection?connection?=?(HttpURLConnection)?url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestProperty("Content-Type",?"text/xml;charset=utf-8"); OutputStream?outputStream?=?connection.getOutputStream(); outputStream.write(data.getBytes("utf-8")); int?responseCode?=?connection.getResponseCode(); if?(responseCode?==?200)?{ // InputStream?inputStream?=?connection.getInputStream(); System.out.println("返回的字节数:"?+?inputStream.available());// response.setContentType("text/xml;charset=utf-8"); ServletOutputStream?outputStream2?=?response.getOutputStream(); byte[]?buffer?=?new?byte[1024]; int?len?=?0; while?((len?=?inputStream.read(buffer))?>?0)?{ outputStream2.write(buffer,?0?,?len); } outputStream2.close(); inputStream.close(); } outputStream.close(); connection.disconnect(); } } 无论是通过localhost还是IP地址来访问页面都可以请求webservice得到相应的结果。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |