我是jquery的新手。我正在尝试使用html和jquery来使用 http://www.webservicex.net/geoipservice.asmx?op=GetGeoIP 的Web服务。我写了以下代码:
<!DOCTYPE html>
<page language ="html" validateRequest="false">
<html>
<head>
<title>Hello There</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> type="text/javascript" > </script>
</head>
<body>
<div>
IPAddress: <input type="text" name="id" id="theId"/>
<br />
<button id="getRemoteResponseBt">Get remote response</button>
</div>
<script>
var url='http://www.webservicex.net/geoipservice.asmx?op=GetGeoIP';
var dataMessage=
'<?xml version="1.0" encoding="utf-8"?> \
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \
<soap:Body> \
<GetGeoIP xmlns="http://www.webservicex.net/"> \
<IPAddress>+theId.val()+</IPAddress> \
</GetGeoIP> \
</soap:Body> \
</soap:Envelope>';
$("#getRemoteResponseBt").click(function() {
$.ajax({
url: url,
dataType: "xml",
data: dataMessage,
processData: false,
contentType: "text/xml; charset=\"utf-8\"",
success: function(text) {
var xml = $(text);
var id = xml.find('IP').text();
var name = xml.find('CountryName').text();
var code = xml.find('CountryCode').text();
alert("Result:" + id +name+code);
},
error:function (xhr) {
alert(xhr.responseText+"Error");
}
});
return false;
});
</script>
</body>
</html>
但是当我点击Button时,每次都会出错。任何人都可以帮助使代码工作吗?有关Web服务说明,请检查链接:http://www.webservicex.net/geoipservice.asmx?op=GetGeoIP
答案 0 :(得分:1)
这是尝试从您的域发布到 webservicex.net 的跨域帖子,除非接收服务器实现CORS,否则浏览器same origin policy禁止该帖子。
API旨在从服务器端脚本调用,其中相同的源不适用,因此您需要在域中查找备用服务或创建代理脚本。