我从后端发送这个有效的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;}
有人可以告诉我如何解决这个错误吗?
答案 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
提供请求。