加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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得到相应的结果。

(编辑:李大同)

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

    推荐文章
      热点阅读