当我尝试从AJAX调用返回一串JSON时,我在控制台中收到以下错误。
未捕获的SyntaxError:意外的令牌
我已经使用我正在使用的代码添加了一个codepen。
如果单击转换按钮并在控制台中查看,您将看到错误。
我不能为我的生活弄清楚。
感谢。
JB
http://codepen.io/anon/pen/XJvyWq
jQuery('.convert').click(function(){
jQuery.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD&callback=?", function(data){
console.log("Data: " + data);
}, 'json')
});
答案 0 :(得分:2)
首先删除“=”。
对于控制台中的字符串显示,您可以使用JSON对象的方法stringify
jQuery('.convert').click(function(){
jQuery.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD&callback", function(data){
console.log("Data: " +JSON.stringify(data) );
}, 'json');
});
或者在控制台中显示一个对象,你可以写一下:
的jQuery( '转换')。点击(函数(){
jQuery.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD&callback", function(data){
console.log(data );
}, 'json');
});
结果:
Object {To: "CAD", From: "EUR", Rate: "1.3138"}
答案 1 :(得分:0)
删除回调=?从您提供的URL的末尾或从.get()方法调用中删除'json'。
jQuery('.convert').click(function(){
jQuery.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD", function(data){
console.log(data);
});});
这是因为jQuery假设当您在URL中传递“callback”参数并输入“json”时,响应将为JSONP。但在这种情况下,服务器发送一个JSON字符串。而不是传递“?”如果传递现有函数的名称,则不会抛出错误。
服务器的当前响应是:
{"To":"CAD","From":"EUR","Rate":"1.3138"}
如果服务器正在使用JSONP进行响应,并且您传递的回调是“test”,则响应将是:
test({"To":"CAD","From":"EUR","Rate":"1.3138"})
答案 2 :(得分:0)
在@SnehalShah说的第二个参数中移除json
并且它可以正常工作
$('.convert').click(function(){
$.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD&callback=?", function(data){
console.log("Data: " + JSON.stringify(data));
});
});
答案 3 :(得分:0)
试试这个::
jQuery('.convert').click(function(){
jQuery.get("https://rate-exchange.herokuapp.com/fetchRate?from=EUR&to=CAD&callback=?", function(data){
console.log("To: " + data.To);
console.log("From: " + data.From);
console.log("Rate: " + data.Rate);
});
});