私のデータを外部変数に戻すことに問題があります。私は、アヤックスのリクエストはうまく動作しますが、私が必要とする方法でそれを渡していないことを知っています。ここajaxリクエスト後に変数にデータを渡す
は私のクラスでの正確な方法である
function(amount,symbol=''){
\t \t \t var current_rate = '';
\t \t \t var url = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'https%3A%2F%2Fwww.google.com%2Ffinance%2Fconverter%3Fa%3D"+ amount +"%26from%3DNGN%26to%3D"+ symbol +"'%20and%20xpath%3D'%2F%2Fdiv%5B%40id%5D'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
\t \t \t
\t \t \t var get_rate = $.ajax({
\t \t \t url: url,
\t \t \t method: "GET"
\t \t \t }).complete(function(data){
\t \t \t \t current_rate = data.responseJSON.query.results.div.span.content;
\t \t \t }).fail(function(jqXHR, textStatus) {
\t \t \t \t alert("Request failed: " + textStatus);
\t \t \t });
\t \t
\t \t \t return current_rate;
\t \t }
アイブ氏は、簡略化のためのコードを編集しました。完全なスクリプトheres。リクエストからのデータを 'Current_rate'変数に戻す方法を知っておく必要があります
Ajaxは非同期呼び出しです...したがって、現在のレートはdone/failが呼び出されるより速く返されます。追加current_rateは範囲外です。私は推測します。あなたはajaxを同期的に呼び出すことができるいくつかのトリックを作ります..ここのようにhttp://stackoverflow.com/questions/6685249/jquery-performing-synchronous-ajax-requestsしかし、私はお勧めしませんそれは..あなたのコードを書き換える方が良いです... – Maxim