Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 XMLHttpRequest:需要使用ajax中的成功和错误函数_Javascript_Jquery_Ajax_Node.js_Xmlhttprequest - Fatal编程技术网

Javascript XMLHttpRequest:需要使用ajax中的成功和错误函数

Javascript XMLHttpRequest:需要使用ajax中的成功和错误函数,javascript,jquery,ajax,node.js,xmlhttprequest,Javascript,Jquery,Ajax,Node.js,Xmlhttprequest,我让这个ajax post函数在点击上传按钮时运行,文件被上传到服务器,服务器看到任何错误,如果有错误,它会用req.end()通知用户函数。问题是,从那以后,我转到了XMLHttpRequest()(使用它提供的onprogress函数),但我仍然需要使用ajax中的成功和错误函数。有没有办法在XMLHttpRequest中使用它们?谢谢大家! 这是我目前掌握的代码: var xhrVideo = new XMLHttpRequest(); xhrVideo.open('POST', '/up

我让这个ajax post函数在点击上传按钮时运行,文件被上传到服务器,服务器看到任何错误,如果有错误,它会用
req.end()通知用户函数。问题是,从那以后,我转到了
XMLHttpRequest()
(使用它提供的onprogress函数),但我仍然需要使用ajax中的成功和错误函数。有没有办法在
XMLHttpRequest
中使用它们?谢谢大家!

这是我目前掌握的代码:

var xhrVideo = new XMLHttpRequest();
xhrVideo.open('POST', '/uploadVideo', true);
xhrVideo.upload.onprogress = function(e) {
  if (e.lengthComputable) {
    $('.videoProgress').html(((e.loaded / e.total) * 100).toFixed(0)+'%');
  }
};
var videoForm = new FormData($('.videoUploadForm')[0]);
xhrVideo.send(videoForm);
还有ajax代码:

var videoData = new FormData($('.videoUploadForm')[0]);
$.ajax({
  url: '/uploadVideo',
  type: 'POST',
  data: videoData,
  cache: false,
  contentType: false,
  processData: false,
  mimeType:"multipart/form-data",
  success: function(data){
    switch(data){
      case '1':
        alert('Wrong Video File Extension');
        break;
      case '2':
        alert('Wrong Image File Type');
        break;
    }
  },
  error: function(data){
    alert('Something went wrong! Please reload this page')
  }
});

load
error
事件使用侦听器

为成功事件添加侦听器的示例

xhrVideo.addEventListener('load', function(e) {
注意:必须在send()函数之前添加侦听器


另外,我建议您阅读有关使用XMLHttpRequest()的全部内容。

就我个人而言,我喜欢使用jquery ajax而不是纯javascript。。因此,您可以使用ajax并捕获进度和加载事件

xhr(默认值:ActiveXObject(即可用的XMLHttpRequest) 否则)键入:用于创建XMLHttpRequest的Function()回调 对象默认为ActiveXObject(即可用时) XMLHttpRequest否则。重写以提供您自己的实现 用于XMLHttpRequest或工厂的增强功能

在代码中,可以这样使用它

$.ajax({
        xhr: function(){
            var xhr = new window.XMLHttpRequest();
            //Upload progress
            xhr.upload.addEventListener("progress", function(evt){
                if (evt.lengthComputable) {
                    var percentComplete = (evt.loaded / evt.total) * 100;
                      //Do something with upload progress
                        $('.videoProgress').html(Math.round(percentComplete)+"% uploaded");
                    }
                }
            }, false);
            xhr.upload.addEventListener("load", function(evt){
                evt.preventDefault();

            },false);
           return xhr;
        },
        // reset of your ajax code