首页 > 解决方案 > jQuery cookie 值作为 AJAX 响应变量

问题描述

我在 cookie 中存储了货币代码。这个值看起来像(欧元、美元、英镑、泰铢...)我向免费 API (exchangeratesapi.io) 发出 AJAX 请求,我想在其中将一定数量的泰铢(泰铢)转换为任何货币用户已在他的 cookie 中设置。

    // Set currency cookie to GBP
    $.cookie("Currency", "GBP");

    // AJAX request to exchangeratesapi
    $.ajax({
        url: "https://api.exchangeratesapi.io/latest?base=THB",
        dataType: 'json'
    })
    .done(function(data) {
        // Set cookie value to var "tocur"
        var tocur = $.cookie("Currency");
        // Get exchange rate for GBP and store it in var "exchangerate" 
        var exchangerate = (data.rates.tocur);
        // Amount of THB to be exchanged to GBP
        var amount = 250;
        // Result for THB amount * exchangerate
        var sum = (amount * exchangerate);
        // Insert result into HTML element, roundet to 2 decimals, replace "." with ","
        $('#responsedata').html(amount + " THB = " + sum.toFixed(2).replace(".", ",") + " " + tocur);
    })
    .fail(function() {
        alert( "Could not fetch exchange rates" );
    });

只要我将变量“exchangerate”手动设置为(data.rates.GBP),这就可以正常工作。一旦我尝试将其设置为 (data.rates.tocur),我就会得到 NaN。

我错过了什么吗?如何让存储在 var "tocur" 中的 cookie 值在我的 var exchangerate 中工作?我需要以某种方式解析它吗?非常感谢您!

我也把它放在了一个 JS-Fiddle 中:这里

标签: jqueryajaxvariables

解决方案


推荐阅读