使用jQuery调用启用JSON的WCF服务返回null

时间:2010-10-17 18:28:17

标签: ajax wcf json jquery

我的网页中有以下脚本,可以调出我已创建并在我的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>

2 个答案:

答案 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)
  },
  //.......
})