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