跨域 AJAX 调用返回字符串 JSON,而不是 JSON 对象
Cross-domain AJAX call returning string JSON, instead of JSON object
我正在进行跨域 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');
}
});
当响应返回时,这里是响应结果
"[{"dayRetention1":"0.01453800063053","visit":"601","installs":"203"},{"dayRetention1":"0.122484891199019","visit":"33863","installs":"10949"]"
注意:我将 dataType 设置为 jsonp
,因为它是跨域 AJAX 调用,如果没有它,我会收到错误。
首先,看起来返回的字符串甚至不是正确的 JSON 形式。 它末尾缺少一个右括号。
如果这不能解决它,那么这里的问题可能出在服务器端。 由于 JSONP 是带有填充的 JSON,因此您的返回函数不应该是:
function_name("the string that I return");
相反,您应该拥有:
function_name({
"name":"Bob Loblaw",
"age":40
});
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象