繁体   English   中英

尝试使用$ .ajax获取JSON时,为什么会出现“SyntaxError:invalid label”

[英]Why “SyntaxError: invalid label” when trying to use $.ajax to get JSON

我正在尝试使用Viralheat的API来使用jQuery进行情绪分析。

1.当我在浏览器的地址栏中输入此内容时,可以:

https://app.viralheat.com/social/api/sentiment?api_key=1234&text=Schindler%27s%20List

它显示:

{"status":403,"error":"API Key not registered"}

2.使用这些代码行,网页显示错误,我想它会遇到相同的原始策略:

    $.ajax({
        type: 'get',
        url: "https://app.viralheat.com/social/api/sentiment?api_key=1234&text=Schindler's List",
        success: function(data){alert(data);},
        error: function(){alert("error");}
    });

3.当我添加callback=? 进入url和dataType: 'json',使用firebug,我可以看到与方案1相同的结果{"status":403,"error":"API Key not registered"} ,但网页仍显示错误,并发生错误:SyntaxError:无效标签

    $.ajax({
        type: 'get',
        dataType: 'json',
        url: "https://app.viralheat.com/social/api/sentiment?api_key=1234&text=Schindler's List&callback=?",
        success: function(data){alert(data);},
        error: function(){alert("error");}
    });

我怎么解决这个问题?

仅仅添加callback=whatever jSON API请求的callback=whatever都不会神奇地将结果转换为JSONP,除非服务实际上支持这样的JSONP选项。

您正在使用的Viralheat API似乎不支持JSONP。 文档没有提到任何类型的JSONP选项。 它提到的唯一选项是API_KEYTEXT PARAMETERS。

正如您所发现的,添加callback=anything不会将输出格式从JSON更改为JSONP。 如果您尝试添加callback=foobar参数的API调用 ,它仍会生成普通的JSON:

{
    "status": 403,
    "error": "API Key not registered"
}

如果此服务不支持JSONP或CORS ,则必须使用服务器上的代码在客户端的浏览器中访问服务而不是JavaScript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM