我的网页中有以下脚本,可以调出我已创建并在我的Web服务器上托管的启用JSON的WCF服务。但是,警报显示“null”。当我在浏览器中指向url时,它返回非常简单的JSON:{"city":"Ann Arbor"}
。此外,当我运行包含下面代码并运行Fiddler的页面时,我可以看到服务被点击并且JSON返回。但是下面的成功函数仍然返回null。谁知道我做错了什么?谢谢。 -Ned
<script type="text/javascript">
$.ajax({
type: "GET",
url: "http://192.168.192.17:8080/Service.svc/class/",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data);
}
});
</script>
答案 0 :(得分:1)
我怀疑问题来自于您尝试使用AJAX调用Web服务这一事实并未与调用脚本托管在同一域中,因此您违反了same origin policy。如果您希望能够使用AJAX调用http://192.168.192.17:8080/Service.svc
,则需要在http://192.168.192.17:8080
上托管调用脚本。
作为一种可能的解决方法,您可以使用服务器端脚本作为与客户端脚本位于同一域中的网桥,或者如果您可以控制Web服务,则使用JSONP。
答案 1 :(得分:0)
您可以定义错误函数以查看问题所在:
$.ajax({
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown)
},
//.......
})