我用axis2创建了一个web服务,我用eclipse部署在apache tomcat 7中。
这是我在 Web 服务中转换的类。这只是一个回声:
package test.org;
public class TestWS {
public String echo(String s){
return ("You typed: " + s);
}
}
如果我从 Eclipse 中尝试这个 Web 服务,在 Web 服务资源管理器中添加 wsdl 它可以完美地工作,但是当我尝试从 jquery 使用这个 ws 时问题就来了。我可以毫无问题地访问 wsdl,它位于: http://localhost:8080/SimpleWS/services/TestWS?wsdl
但是,当我尝试这段代码时,会发生以下错误: XMLHttpRequest cannot load http://localhost:8080/SimpleWS/services/TestWS
。Access-Control-Allow-Origin 不允许 Origin null。
我一直在阅读有关 CORS 以及在服务器端包含一些类似这样的代码:Access-Control-Allow-Origin: *,但是由于我已经直接使用 eclipse 部署了我的 ws,所以我不知道该怎么做,并且我不确定这是否是我的问题。
先感谢您!!
这是我的代码:
<h3>Web service example</h3>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
function callWS() {
var soapmessage = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' " +
"xmlns:q0='http://org.test' xmlns:xsd='http://www.w3.org/2001/XMLSchema'" +
"xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>";
soapmessage += "<soapenv:Body>";
soapmessage += "<q0:echo>";
soapmessage += "<q0:s>HELLO</q0:s>";
soapmessage += "</q0:echo>";
soapmessage += "</soapenv:Body>";
soapmessage += "</soapenv:Envelope>";
alert(soapmessage);
$.ajax({
type: 'POST',
url: 'http://localhost:8080/SimpleWS/services/TestWS',
data: soapmessage,
contentType: "application/xml; charset=utf-8",
dataType: "xml",
success: function (data) {
alert(data);
},
error: function (data) {
alert("error" + data.d);
}
});
alert("Form Submitted");
}
</script>
<form method="post" action="">
<input type="button" onclick="callWS()" value="execute" />
</form>
</body>
</html>