我正在进行跨域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调用,没有它我收到错误。
答案 0 :(得分:0)
首先,看起来返回的字符串甚至没有正确的JSON格式。它在最后错过了一个紧密的支架。
如果这不能解决问题,那么这里的问题可能就在服务器端。由于JSONP是带填充的JSON,因此返回函数不应为:
function_name("the string that I return");
相反,你应该:
function_name({
"name":"Bob Loblaw",
"age":40
});