簡體   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