【发布时间】:2013-04-08 01:01:41
【问题描述】:
我使用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>
【问题讨论】:
标签: java jquery web-services axis2 cors