Javascript Jquery webservice调用无法读取属性';内容文档';未定义的
我正在从后端发送这个有效的json响应Javascript Jquery webservice调用无法读取属性';内容文档';未定义的,javascript,jquery,Javascript,Jquery,我正在从后端发送这个有效的json响应 [ { "id": 123, "vendorName": "PoppyCounter", "item": "Chocltae" }, { "id": 1234, "vendorName": "PoppyCounter", "item": "Chocltae" }, { "id": 12345,
[
{
"id": 123,
"vendorName": "PoppyCounter",
"item": "Chocltae"
},
{
"id": 1234,
"vendorName": "PoppyCounter",
"item": "Chocltae"
},
{
"id": 12345,
"vendorName": "PoppyCounter",
"item": "Chocltae"
}
]
我正在从Jquery调用webservice,如下所示
<!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>
$(文档).ready(函数(){
$.ajax({
键入:“GET”,
网址:'http://192.168.2.46:8086/Poller/poll/initial',
JSONPCCallback:'jsonCallback',
数据类型:“jsonp”,
成功:功能(msg){
},
错误:函数(e){
$(“#divResult”).html(“无法访问WebSerivce”);
}
});
});
我得到以下异常
TypeError{stack:(…),消息:“无法读取未定义“}的属性“contentDocument”
有谁能告诉我如何解决此错误吗???您要求的是JSONP,但是来自后端的响应是原始JSON,响应应该更像:
jsonCallback([
{
"id": 123,
"vendorName": "PoppyCounter",
"item": "Chocltae"
}
])
还应该有一个名为jsonCallback
的全局函数,它将获取数据数组作为参数
function jsonCallback (data) {
console.log(data);
}
您必须设置后端来格式化JSONP,您可以找到正确的回调名称,因为jQuery将发送“jsonCallback”作为GET参数“callback”
后端应该将请求作为
application/javascript
而不是application/json
来提供服务。您的ajax请求是否需要jsonP
,但您只返回json
?非常感谢,我如何返回jsonP?您必须使用jsonP
吗?如果网站和服务位于同一个域json
就可以了。返回jsonP的方式取决于您在后端/服务器上使用的内容。PHP,Rails。。。?不是后端人员,所以帮不了你那么多,抱歉。如果您在不同的域上,您还可以考虑激活CORS
,以允许在json
中发出ajax请求。