Jquery Web服务调用无法读取属性' contentDocument'未定义的

时间:2014-05-08 13:58:21

标签: javascript jquery

我从后端发送这个有效的json响应

[
    {
        "id": 123,
        "vendorName": "PoppyCounter",
        "item": "Chocltae"
    },
    {
        "id": 1234,
        "vendorName": "PoppyCounter",
        "item": "Chocltae"
    },
    {
        "id": 12345,
        "vendorName": "PoppyCounter",
        "item": "Chocltae"
    }
]

我正在从Jquery进行Web服务调用,如下所示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script type="text/javascript">

    $(document).ready(function() {
        $.ajax({
            type: 'GET',
            url: 'http://192.168.2.46:8086/Poller/poll/initial',
            jsonpCallback: 'jsonCallback',
            dataType: 'jsonp',
            success: function (msg) {

            },
            error: function (e) {
                $("#divResult").html("WebSerivce unreachable");
            }
        });
    });



    </script>
</head>
<body>
    <div id="divResult" style="margin-top: 20px;">
    </div>
</body>
</html>

我收到以下异常

TypeError {stack:(...),message:&#34;无法读取属性&#39; contentDocument&#39;未定义&#34;}

有人可以告诉我如何解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

您要求使用JSONP,但后端的响应是原始JSON,响应应该更像:

jsonCallback([
  {
    "id": 123,
    "vendorName": "PoppyCounter",
    "item": "Chocltae"
  }
])

还应该有一个名为jsonCallback的全局函数,它将数据数组作为参数。

function jsonCallback (data) {
  console.log(data);
}

您必须设置后端以格式化JSONP,您可以找到正确的回调名称,因为jQuery将发送&#34; jsonCallback&#34;作为GET参数&#34;回调&#34;。

后端应该以{{1​​}}代替application/javascript提供请求。