如何解决永远不会对服务器进行 XMLHttpRequest 调用
我有一个看起来不错的 XMLHttpRequest,它没有产生任何我能看到的错误,但我从未看到请求发送到服务器。
它就像在调用服务器之前出错或取消一样。开发工具网络部分没有网络请求。
我注意到的最重要的事情是,虽然我设置了 xhr.timeout = 15000
,但 xhr 对象中的超时声明了它的 0
- 但我不知道这是否是一个问题。
这是我的请求,在响应处理中唯一打印到控制台的是 XHR OTHER
控制台消息:
function sendError(url,params) {
return new Promise( function(resolve) {
//url - passed from calling function
//params - JSON.stringify({ var1:var1,var2:var2}) ; - passed from calling script
console.log(url) ; // prints proper url to console
console.log(params) ; // prints proper params to console
var xhr = new XMLHttpRequest();
xhr.responseType = 'json' ;
//var params = JSON.stringify({ type:8,subject:sub.value,message:msg.value,emailAddys:toAddresses }) ;
xhr.onreadystatechange = function() {
var status ;
if (xhr.readyState == 15) {
console.log("XHR Tiemout") ;
console.log("Time out ready state = 15") ;
status = {status:false,errMsg:"Time out ready state = 15"} ;
} else if (xhr.readyState == XMLHttpRequest.DONE) {
console.log("XHR Response") ;
console.log(xhr.response) ;
var res = xhr.response[0] ;
if (xhr.status == 200) {
// process API call results
status = {status:true,errMsg:res.message} ;
} else {
status = {status:false,errMsg:res.message} ;
}
} else {
console.log("XHR OTHER") ; <----- this prints to console everytime
console.log(xhr) ;
status = {status:false,errMsg:"Something went wrong,no response from server"} ;
}
resolve(status) ;
}
xhr.open('POST',url,true);
xhr.setRequestHeader('Pragma','no-cache') ;
xhr.setRequestHeader('Expires',-1) ;
xhr.setRequestHeader('Cache-Control','no-cache,no-store,must-revalidate') ;
xhr.setRequestHeader('Content-Type','application/json') ;
xhr.setRequestHeader('X-Requested-With','com.mydomain') ;
xhr.setRequestHeader('Authorization','Token ' +clientToken) ;
xhr.timeout = 15000 ; // 15 seconds
xhr.ontimeout = function() { console.log("Timed Out!") ; };
xhr.send(params);
}) ;
}
这是我打印到控制台的 xhr,onreadystatechange()
函数中有一个 sendError,但我不明白错误的根源:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。