繁体   English   中英

当我在jQuery中进行AJAX调用时JSON中出现错误

[英]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"})

http://codepen.io/tejzpr/pen/yymQNz?editors=101解释了这两种情况。

删除@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));  
    });
});

http://jsfiddle.net/1z20m3pL/

尝试这种方式:

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.

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