2013-10-17 101 views
1

由於某種原因,我無法獲得JSON的值,任何機構都可以幫助我嗎?貨幣兌換腳本不起作用

function forex() { 
    var to = document.getElementById("to").value; 
    alert(to); 
    var from = document.getElementById("from").value; 
    alert(from); 
    var amount = document.getElementById("amount").value; 
    alert(amount); 
    $.getJSON("http://rate-exchange.appspot.com/currency?from=" + from + "&to=" + to + "&q=" + amount, function (response) { 
     alert(response); 
    }); 

    } 
+0

檢查控制檯的錯誤,並嘗試'的console.log(響應)' –

+0

你在http運行此腳本://rate-exchange.appspot.com? – Uooo

回答

1

Demo

由於Same Origin Policy,你不能rate-exchange.appspot.com通過ajax訪問,因爲你的Javascript在不同域中執行的資源。

就你而言,這個特定的站點支持JSONP,所以你可以使用jQuery的JSONP實現來繞過同源策略。 JSONP通過將目標URL包含爲<script>標記並使用不受同源策略綁定的回調來工作。

如果$.getJSON()方法在URL中找到參數(例如callback=?),它將使用JSONP。

實施例:

function forex() { 
    var to = document.getElementById("to").value; 
    var from = document.getElementById("from").value; 
    var amount = document.getElementById("amount").value; 

    $.getJSON("http://rate-exchange.appspot.com/currency?&callback=?", { from : from, to : to, q : amount }, function (response) { 
     alert(response.v); 
    }); 
} 

我也改變您的手動網址變量這是優選的,因爲jQuery將處理URL編碼的對象。

+0

感謝它完美的作品! – roee69

+0

現在它停止工作,任何人都知道爲什麼? – roee69

0

,而不是下面的代碼:

$.getJSON("http://rate-exchange.appspot.com/currency?from=" + from + "&to=" + to + "&q=" + amount, function (response) { 
    alert(response); 
}); 

使用下面的代碼:

$.ajax({ 
    url: "http://rate-exchange.appspot.com/currency?from=" + from + "&to=" + to + "&q=" + amount, 
    dataType: 'jsonp', 
    success: function(response) { 
     alert(response.v); 
    } 
}); 
+0

感謝它的完美! – roee69

+0

現在它停止工作,任何人都知道爲什麼? – roee69

+0

@ roee69可能需要更改URL。 –