[英]Error in JSON when I am doing a AJAX call in jQuery
尝试从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')
});
首先删除“ =”。
要在控制台中显示字符串,可以使用JSON对象的方法字符串化
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"}
删除回调=? 从要提供的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中传递“回调”参数并键入'json'时,响应将为JSONP 。 但是在这种情况下,服务器将发送JSON字符串。 而不是传递“?” 如果传递现有函数的名称,则不会引发该错误。
服务器当前的响应是:
{"To":"CAD","From":"EUR","Rate":"1.3138"}
如果服务器使用JSONP进行响应,并且您传递的回调为“ test”,则响应将为:
test({"To":"CAD","From":"EUR","Rate":"1.3138"})
删除@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));
});
});
尝试这种方式:
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);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.