首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨域AJAX调用返回字符串JSON,而不是JSON对象

跨域AJAX调用返回字符串JSON,而不是JSON对象
EN

Stack Overflow用户
提问于 2013-10-19 02:12:56
回答 1查看 905关注 0票数 0

我正在进行一个跨域AJAX调用,我不确定是我做错了什么,还是API调用的提供者错误地返回了JSON。每当我从API调用获得响应时,它都是一个字符串,而不是JSON对象。下面是我的AJAX调用。

代码语言:javascript
复制
    $.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如下所示

代码语言:javascript
复制
"[{"dayRetention1":"0.01453800063053","visit":"601","installs":"203"},{"dayRetention1":"0.122484891199019","visit":"33863","installs":"10949"]"

注意:我将dataType设置为jsonp,因为它是一个跨域AJAX调用,如果没有它,我会得到一个错误。

EN

回答 1

Stack Overflow用户

发布于 2013-10-19 04:39:23

首先,看起来返回的字符串甚至不是正确的JSON格式。它的末尾缺少一个右括号。

如果这不能解决它,那么这里的问题可能出在服务器端。因为JSONP是带填充的JSON,你的返回函数不应该是:

代码语言:javascript
复制
function_name("the string that I return");

相反,你应该拥有:

代码语言:javascript
复制
function_name({
    "name":"Bob Loblaw", 
    "age":40
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19456383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档