Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 JQuery承诺在ComponentDidMount React.JS上失败_Javascript_Jquery_Ajax_Reactjs_Es6 Promise - Fatal编程技术网

Javascript JQuery承诺在ComponentDidMount React.JS上失败

Javascript JQuery承诺在ComponentDidMount React.JS上失败,javascript,jquery,ajax,reactjs,es6-promise,Javascript,Jquery,Ajax,Reactjs,Es6 Promise,在我的组件的ComponentDidMount生命周期方法中,我试图启动一个AJAX请求以获取客户端数据(当应用程序加载时,数据需要可用)。经过检查,我注意到我的承诺链一直遵从fail属性。这是令人困惑的,因为在通过Chrome开发者工具进行检查后,会提出请求,并成功地将数据返回到promise(见屏幕截图)。我怀疑这可能是我的组件加载速度的问题,我尝试了一种componentWillMount生命周期方法,得到了相同的结果。我本来可以通过AJAX请求同步地检索数据,但现在我正在尝试使用异步功能

在我的组件的ComponentDidMount生命周期方法中,我试图启动一个AJAX请求以获取客户端数据(当应用程序加载时,数据需要可用)。经过检查,我注意到我的承诺链一直遵从
fail
属性。这是令人困惑的,因为在通过Chrome开发者工具进行检查后,会提出请求,并成功地将数据返回到promise(见屏幕截图)。我怀疑这可能是我的组件加载速度的问题,我尝试了一种componentWillMount生命周期方法,得到了相同的结果。我本来可以通过AJAX请求同步地检索数据,但现在我正在尝试使用异步功能改进代码

已尝试新代码:

componentDidMount: function(){ 
      var returnedClassesString;

      var user = window.globalValue;

      function getQueries(user){
          returnedClassesString = $.ajax("/portals/0/js/get_classes_front.aspx?userName="+user).done(function(data,err){
              console.log('good' + data);
          }).fail(function(data,err){
              console.log(err);
          });  

      }

      getQueries(user);



  },
组件安装方法:

componentDidMount: function(){ 
      var returnedClassesString;

      var user = window.globalValue;

       $.when($.ajax("/portals/0/js/get_classes_front.aspx?userName="+user)).then(function(data, textStatus, jqXHR) {
          // Handle both XHR objects
          console.log(data);
          }).fail(function(){
                   console.log('failed');
             });
    }
Chrome开发工具屏幕截图(网络流量,我请求堆栈中的第一个文件):

Chrome开发工具的屏幕截图(带有“失败”消息的JavaScript控制台):
问题出在我的服务器端代码上。使用.Net代码隐藏,从
Response.ContentType=“text/xml”切换
Response.ContentType
Response.ContentType=“text”。感谢您发现我的JSON错误。以上两个示例中发布的代码仍然有效

问题出在我的服务器端代码上。使用.Net代码隐藏,从
Response.ContentType=“text/xml”切换
Response.ContentType
Response.ContentType=“text”。感谢您发现我的JSON错误。以上两个示例中发布的代码仍然有效

很确定问题出在ajax请求中。使用
$.ajax(…).done().fail()
而不是
$.when($.ajax()).then().fail()
。这个反应在身体里有什么吗?您应该检索哪种类型的数据?嘿,实际上我刚刚尝试了这个,但又一次“失败”。不过这一次,我注销了错误代码“parseerror”(拼写如下)。我要回一串数据。我在同步获取数据时使用了AJAX请求,没有问题,我还尝试了$.get()。我在尝试$。当我有超过1个AJAX请求时,我将等待解决。我将发布一些新代码,我尝试了开发工具显示响应为“脚本”,检查它并查看它的外观。是JSON吗?响应头是否说应该将其解析为JSON?你能把响应头和主体粘贴到这里吗?“parseerror”表示你的JSON无效。很确定问题出在ajax请求中。使用
$.ajax(…).done().fail()
而不是
$.when($.ajax()).then().fail()
。这个反应在身体里有什么吗?您应该检索哪种类型的数据?嘿,实际上我刚刚尝试了这个,但又一次“失败”。不过这一次,我注销了错误代码“parseerror”(拼写如下)。我要回一串数据。我在同步获取数据时使用了AJAX请求,没有问题,我还尝试了$.get()。我在尝试$。当我有超过1个AJAX请求时,我将等待解决。我将发布一些新代码,我尝试了开发工具显示响应为“脚本”,检查它并查看它的外观。是JSON吗?响应头是否说应该将其解析为JSON?您能将响应头和主体粘贴到这里吗?“parseerror”表示您的JSON无效。