我需要从以下网站验证增值税ID http://ec.europa.eu/taxation_customs/vies/vatRequest.html 我正在使用bwlow代码访问上述网站的web服务,但没有使用
<html>
<head>
<title></title>
<script src="jquery-1.8.2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#BTNSERVICE").click(function (event) {
var webserUrl = "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl";
var soapRequest =
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" \
xmlns:urn="urn:ec.europa.eu:taxud:vies:services:checkVat:types">\
<soapenv:Header/>\
<soapenv:Body>\
<urn:checkVat>\
<urn:countryCode>MS</urn:countryCode>\
<urn:vatNumber>TESTVATNUMBER</urn:vatNumber>\
</urn:checkVat>\
</soapenv:Body>\
</soapenv:Envelope>';
$.ajax({
type: "POST",
url: webserUrl,
contentType: "text/xml",
dataType: "xml",
data: soapRequest,
success: SuccessOccur,
error: ErrorOccur
});
});
});
function SuccessOccur(data,status, req) {
alert(status);
if (status == "success")
{
alert('sucess');
alert(req.responseText);
}
}
function ErrorOccur(data,status, req) {
alert(status);
alert(req.responseText + " " + status);
}
</script>
</head>
<body>
<form runat="server">
<button id="BTNSERVICE" runat="server" text="BTNSERVICE" />
SAMPLE Application to test service
</form>
</body>
</html>
在运行上面的代码后,它实际上应该抛出&#34;不,输出无效&#34;但它会抛出错误,例如&#34;未定义的错误&#34;。不确定出了什么问题。
注意:我在上面的代码中发送的SOAP请求在下面的网站中提供 http://ec.europa.eu/taxation_customs/vies/vatRequest.html 在我出错的地方有人可以帮助我吗? 提前谢谢......
答案 0 :(得分:1)
所以,正如我在评论中所说,问题出在同源政策中。请求的资源上没有“Access-Control-Allow-Origin”标头,因此除非您禁用CORS,否则无法直接从浏览器进行此调用(但您不会在生产中执行此操作)。
您需要做的是构建一个轻量级服务,通过该服务可以路由您的请求。您的服务将调用SOAP VAT Web服务并传回结果。您甚至可以利用这个机会在服务器端执行某些逻辑,并进一步简化客户端JavaScript调用。
如果你在服务器上使用JavaScript / NodeJs解决方案,我建议使用SOAP库而不是自己构建信封。查看:http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
或者如果你想在JS中构建自己的:http://www.ibm.com/developerworks/webservices/library/ws-wsajax/
答案 1 :(得分:0)