Webservice地址为 http://192.168.13.232:8989/ws_01/umgsai
JSP页面地址为 http://192.168.13.232:8080/Demo/index.jsp
Webservice的请求体如下
<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>sa</arg0> </q0:sayHello> </soapenv:Body> </soapenv:Envelope>
Webservice的响应体如下
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:sayHelloResponse xmlns:ns2="http://ws.umgsai.com/"> <return>Hello sa</return> </ns2:sayHelloResponse> </S:Body> </S:Envelope>
JSP页面如下
<%@ 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(){
$("#WebserviceJQuery").click(function(){
var name = document.getElementById("username").value;
//请求体
var 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>';
/*
$.post(url, data, function(msg){
var $Result = $(msg);
var value = $Result.find("return").text();
alert(value);
},"xml");
*/
$.ajax({
type:"POST",
url:url,
data:data,
success:function(msg){
var $Result = $(msg);
var value = $Result.find("return").text();
alert(value);
},
error:function(msg){
alert("错误信息:" + msg);
},
datatype:"xml",
contentType:"text/xml;charset=utf-8"
});
});
});
function reqWebservice() {
var name = document.getElementById("username").value;
//请求体
var 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>';
var request = GetXmlHttpObject();
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200){
var result = request.responseXML;
//alert(result);
var returnElement = result.getElementsByTagName("return")[0];
var value = returnElement.firstChild.data;
alert(value);
}
};
//响应体 <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
/*
<S:Body>
<ns2:sayHelloResponse xmlns:ns2="http://ws.umgsai.com/">
<return>Hello sa</return>
</ns2:sayHelloResponse>
</S:Body>
</S:Envelope>
*/
request.open("POST", url);
request.setRequestHeader("Content-type", "text/xml;charset=utf-8");
request.send(data);
}
function GetXmlHttpObject() {
var xmlHttp = null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
</script>
</head>
<body>
name:
<input id="username" name="username" value="" />
<button onClick="reqWebservice()">Ajax请求Webservice</button>
<button id="WebserviceJQuery">Ajax请求Webservice with JQuery</button>
</body>
</html>
存在跨域访问的问题,只能通过 http://192.168.13.232:8080/Demo/index.jsp 来访问。
通过 http://localhost:8080/Demo/index.jsp来访问是提示错误。
本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1563938