Javascript 在ajax完成后将数据从ajax函数传递到另一个函数

Javascript 在ajax完成后将数据从ajax函数传递到另一个函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,试图通过ajax调用将数据传递到jvectormap,我有when函数,因此代码在ajax完成加载后运行 我的问题是地图是空的,我得到了一个错误 未捕获引用错误:未定义postdata 这是我目前拥有的代码 $(document).ready(function() { function ajax1() { return $.ajax({ url: "src/data.php

试图通过ajax调用将数据传递到
jvectormap
,我有
when
函数,因此代码在
ajax
完成加载后运行

我的问题是地图是空的,我得到了一个错误

未捕获引用错误:未定义postdata

这是我目前拥有的代码

            $(document).ready(function() {

            function ajax1() {

                return $.ajax({
                    url: "src/data.php?form_action=call-map",
                    type: "GET",
                    data: postdata,
                    dataType: "text", // the type of data that you're expecting back from the server
                    error: function(jqXHR, textStatus, errorThrown) {
                        $().toastmessage("showErrorToast",
                            "AJAX call failed: "+textStatus+" "+errorThrown);
                    },
                    success: function(data) {
                        console.log(data);
                        //return false;
                    }
                });

            }

            $.when(ajax1()).done(function(a1){

                $('#world-map').vectorMap({
                    map: 'world_mill_en',
                    backgroundColor: "transparent",
                    regionStyle: {
                        initial: {
                            fill: '#e4e4e4',
                            "fill-opacity": 0.9,
                            stroke: 'none',
                            "stroke-width": 0,
                            "stroke-opacity": 0
                        }
                    },

                    series: {
                        regions: [{
                            values: a1,
                            scale: ["#005aad", "#001d38"],
                            normalizeFunction: 'polynomial'
                        }]
                    },
                    onRegionTipShow: function(e, el, code){
                        el.html(el.html()+ '<br>Time Used: '+mapData[code]);
                    }
                });
            });
        });

控制台日志(数据);显示我需要传递到
jvectormap

的所有数据。您的
postdata
变量未初始化(在您发布的代码段中!)。更改此设置:

url: "src/data.php?form_action=call-map",
type: "GET",
data: postdata,
dataType: "text", // the type
为此:

url: "src/data.php",
type: "GET",
data: "form_action=call-map",
dataType: "text", // the type

但是,如果变量“postdata”对您有意义,请告诉我们您在何处对其进行赋值。

您的
postdata
变量未初始化(在您发布的代码段中!)请更改以下内容:

url: "src/data.php?form_action=call-map",
type: "GET",
data: postdata,
dataType: "text", // the type
为此:

url: "src/data.php",
type: "GET",
data: "form_action=call-map",
dataType: "text", // the type

但是,如果变量“postdata”对您有意义,请告诉我们您在哪里对其进行赋值。

我可以通过使用以下命令转换字符串中的数据类型来解决此问题:

var a1 = JSON.parse(a1);

谢谢。

我可以通过使用以下命令转换字符串中的数据类型来解决此问题:

var a1 = JSON.parse(a1);

谢谢。

您的
postdata
包含哪些内容?我必须删除该行,因为我没有向脚本发送任何内容
console.log(a1)
在您的done函数中显示了哪些内容?如果它返回字符串,您需要将其转换为对象/数组。您的
postdata
包含哪些内容?我必须删除该行,因为我没有向脚本发送任何内容
console.log(a1)
在您的done函数中显示了哪些内容?如果它返回一个字符串,你需要将它转换成一个对象/数组。我删除了我遗漏的那一行。我看到的问题是,我没有将返回数据从ajax传递到另一个函数properly@user2661296用一个简单的警报测试它,在“when”函数中添加“alert(a1)”并检查您看到的值。我刚刚测试了你的“when”,它工作了,但是我不知道你在“a1”变量中期望得到什么结果。在对函数中的var进行了警报之后,我得到了我需要的字符串{“AF”:10,“AX”:22,“AL”:5,“DZ”:0,“AS”:41,“AD”:74,“AO”:30}但是我的映射仍然是空的,脚本告诉我没有地图数据来填充地图。数据似乎是正确的,现在,我不知道JSvector需要什么格式。如果可以,把唯一的JSVector部分放进去,我会尽力帮助你。但是你的控制台浏览器还有其他错误吗?我删除了我错过的那一行。我看到的问题是,我没有将返回数据从ajax传递到另一个函数properly@user2661296用一个简单的警报测试它,在“when”函数中添加“alert(a1)”并检查您看到的值。我刚刚测试了你的“when”,它工作了,但是我不知道你在“a1”变量中期望得到什么结果。在对函数中的var进行了警报之后,我得到了我需要的字符串{“AF”:10,“AX”:22,“AL”:5,“DZ”:0,“AS”:41,“AD”:74,“AO”:30}但是我的映射仍然是空的,脚本告诉我没有地图数据来填充地图。数据似乎是正确的,现在,我不知道JSvector需要什么格式。如果可以,把唯一的JSVector部分放进去,我会尽力帮助你。但是您的控制台浏览器中还有其他错误吗?