我正在进行一个跨域AJAX调用,我不确定是我做错了什么,还是API调用的提供者错误地返回了JSON。每当我从API调用获得响应时,它都是一个字符串,而不是JSON对象。下面是我的AJAX调用。
$.ajax({
async: false,
dataType: 'jsonp',
url: 'http://cross-domain/getSummaryStat.action',
data: { minDailyDate: start_param, maxDailyDate: end_param },
success: function(response) {
map = {
gamefuse: response["ROM-GF-Live"],
facebook: response["ROM-FB-Live"],
kongregate: response["ROM-Kongregate-Live"],
yahoo: response["ROM-Yahoo-Live"]
}
},
error: function(xhr, textStatus, errorThrown){
alert('request failed');
}
});当响应返回时,response.result如下所示
"[{"dayRetention1":"0.01453800063053","visit":"601","installs":"203"},{"dayRetention1":"0.122484891199019","visit":"33863","installs":"10949"]"注意:我将dataType设置为jsonp,因为它是一个跨域AJAX调用,如果没有它,我会得到一个错误。
发布于 2013-10-19 04:39:23
首先,看起来返回的字符串甚至不是正确的JSON格式。它的末尾缺少一个右括号。
如果这不能解决它,那么这里的问题可能出在服务器端。因为JSONP是带填充的JSON,你的返回函数不应该是:
function_name("the string that I return");相反,你应该拥有:
function_name({
"name":"Bob Loblaw",
"age":40
});https://stackoverflow.com/questions/19456383
复制相似问题