Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Servlet数据未加载到extjs中的变量中_Javascript_Ajax_Extjs - Fatal编程技术网

Javascript Servlet数据未加载到extjs中的变量中

Javascript Servlet数据未加载到extjs中的变量中,javascript,ajax,extjs,Javascript,Ajax,Extjs,在我的代码中,我使用ajax请求从javascript调用servlet。Servlet数据显示在success函数的消息框中。但它并没有加载到javascript中的变量myData中。来自servlet的数据是json格式的。请帮帮我。这是我的密码 var myData=null; Ext.Ajax.request({ url: 'MyDataServlet', method:'GET', loadMask: true, scope: this, su

在我的代码中,我使用ajax请求从javascript调用servlet。Servlet数据显示在success函数的消息框中。但它并没有加载到javascript中的变量myData中。来自servlet的数据是json格式的。请帮帮我。这是我的密码

var myData=null;
Ext.Ajax.request({
    url: 'MyDataServlet',
    method:'GET',
    loadMask: true,
    scope: this,
    success: 
    function ( result, request ) { 
      Ext.MessageBox.alert('success', result.responseText); 
       myData =Ext.decode(result.responseText);
       console.log(myData);
       store.loadData(myData);

    },
    failure: 
        function ( result, request) { 
            Ext.MessageBox.alert('Failed', result.responseText); 
    } 
});
“AJAX”中的第一个“A”代表“asynchronous”,这意味着应用程序流在服务器发回响应之前继续(我认为“fire and forget”是一个有用的类比)。
在您的情况下,
myData
仅在响应到达后分配,您不能假设其余代码在响应到达之前执行。无论您想对
myData
执行什么操作,都需要从
success
回调调用它。

responseText包含什么?是有效的JSON字符串吗?是。ResponseText包含有效的JSON字符串。根据代码判断,您必须获取对象或异常。Show ResponseText。更仔细地阅读问题:“数据显示在success函数的messegebox中,但它没有加载到javascript中的变量myData中。”。无论如何,当我看到
myData
success
回调之外声明时,我就想到了这一点。OP希望这样做的唯一原因是在另一个地方重用该值,而这不是正确的方法。在外部声明myData变量没有问题。成功函数只是一个闭包,它能够使用myData。消息框不显示myData,它显示从服务器收到的responseText;OP明确表示“数据显示在messegebox中”,因为回调中的所有内容都是在从服务器返回值后执行的。另一方面,在回调之外使用
myData
的任何代码都不会看到正确的值。在您完全理解答案之前,请不要对答案投票。难道您看不到ajax请求后的代码吗?我不能。所以我不明白你为什么写这些。