这真令人沮丧。我得到了一个jsonp结果跨域,我可以看到它穿过电线。
我的ajax功能是
function loadPropertylatlon(propertyid) {
var mydata;
$.ajax({
crossDomain: true,
url: "/MapData.asmx/GetLatLonp",
type: "POST",
data: { id : propertyid },
//async: false,
cache: true,
contentType: "application/json;",
dataType: "jsonp",
success: function (data, textStatus, jqXHR) { //
mydata = data;
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
console.log(xmlHttpRequest.responseText);
console.log(textStatus);
console.log(errorThrown);
alert("Screen shot this error GetLatLon: " + jqXHR.toString() + " " + textStatus.toString() + " " + errorThrown.toString());
}
});
return mydata;
}
// Load data from ajax
latlondata = loadPropertylatlon(GetQueryStringParams('id'));
如果我将来自通话的数据字符串化,我就会得到这个。
[{"lat":"25.555555","lon":"-80.555555","address":"1 main st, MIAMI, FL 33130","id":0,"count":0,"state":null}]
我遇到的问题是,如果我试图访问latlondata [0] .lat我什么都没得到。
如果I $。使用ajax调用中的数据,就像这样
$.each(data, function (i, value) {
console.log('Value of ' + i + ' is : ' + value);
$.each(value, function (ii, vvalue) {
console.log('obj Value of ' + ii + ' is : ' + vvalue);
})
})
我得到
的输出Value of 0 is : [object Object]
obj Value of lat is : 25.854073
obj Value of lon is : -80.174575
obj Value of address is : 1105 ne 85th st, MIAMI, FL 33138
obj Value of id is : 0
obj Value of count is : 0
obj Value of state is : null
问题是数据在我的功能之外没有正确返回。
如果我尝试将其字符串化,我会得到一个未定义的。
// Load data from ajax
latlondata = loadPropertylatlon(GetQueryStringParams('id'));
// latlondata is undefined.. why?
alert(JSON.stringify(latlondata));