通过Ajax调用WebService接口首先需要解决Ajax跨域的问题,解决方式如下:
(1)项目中引入jar包,maven项目直接在pom.xml中添加如下依赖即可
com.thetransactioncompany
cors-filter
2.6
com.thetransactioncompany
java-property-utils
1.13
(2)在Web.xml中添加如下配置(此filter放第一个):
CORS
com.thetransactioncompany.cors.CORSFilter
cors.allowOrigin
*
CORS
/*
Ajax调用WebService接口的方法如下:
function testBtn() {
let testBtn = document.getElementById('testBtn');
var paramsXml = '' +
'' +
'' +
'22' +
'Jack' +
'' +
'' +
'';
$.ajax({
url: "http://localhost:8080/webservice_pro_war/services/proService/proService/testObject",
type: "POST",
dataType: "XML",
contentType: "text/xml; charset=UTF-8",
data: paramsXml,
// crossDomain: true,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("SOAPAction", "");
},
success: function (data) {
let ele = data.getElementsByTagName("return")[0];
document.getElementById('response').innerHTML = ele.childNodes[0].childNodes[0].data + ele.childNodes[1].childNodes[0].data;
// console.log(ele.childNodes[0].childNodes[0].data);
// alert(ele.childNodes[1].childNodes[0].data);
// console.log(JSON.parse(ele.childNodes[0].data).age);
// alert(JSON.parse(ele.childNodes[0].data).name);
}
// error: function (data) {
// console.log(data);
// }
});
}