Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 通过ajax post发送blob_Javascript_Ajax_Blob_Audio Recording - Fatal编程技术网

Javascript 通过ajax post发送blob

Javascript 通过ajax post发送blob,javascript,ajax,blob,audio-recording,Javascript,Ajax,Blob,Audio Recording,我正试图通过一篇ajax文章向Rails操作发送一个音频blob。我似乎开始关注Rails操作,但我发送的数据似乎是空的,并且我的音频文件没有保存。我可以用简单的javascript实现这一点,但我似乎无法用ajax实现这一点 Ajax不工作: function sendRecToPostAjax(blob){ var data = new FormData(); data.append("audio", blob, (callid + ".oga")); data.a

我正试图通过一篇ajax文章向Rails操作发送一个音频blob。我似乎开始关注Rails操作,但我发送的数据似乎是空的,并且我的音频文件没有保存。我可以用简单的javascript实现这一点,但我似乎无法用ajax实现这一点

Ajax不工作:

function sendRecToPostAjax(blob){

    var data = new FormData();
    data.append("audio", blob, (callid + ".oga"));
    data.append('callid', callid);

    return $.ajax({
        url: '/controller/action',
        type: 'POST',
        cache: false,
        data: data,
        processData: false,
        contentType: false
    });
}
JS工作:

function sendRecToPost(blob) {

  var data = new FormData();
  data.append("audio", blob, (callid + ".oga"));
  data.append('callid', callid);

  var oReq = new XMLHttpRequest();
  oReq.open("POST", "/controller/action");
  oReq.send(data);

  oReq.onload = function(oEvent) {
      if (oReq.status == 200) {
          console.log("Uploaded");
      } else {
          console.log("Error " + oReq.status + " occurred uploading your file.");
      }
  };
}

jquery(即$.ajax)一定把事情搞砸了-注意:有效的XMLHttpRequest代码也是异步JavaScript和XML-由
$执行的实际数据传输。ajax
使用XMLHttpRequest-因此,可能需要设置一些模糊的未记录的jquery选项来实际修复jQuey,AJAX的价值在于它是异步Javascript和Xml的缩写。您的两个代码段都使用AJAX,第一个代码段也使用jQuery。感谢大家的帮助!非常有用的知道!因此,我想做的是在不刷新页面的情况下上载此文件,我希望第一种方法可以做到这一点..猜测一下,不要设置
contentType:false
-事实上,不要将contentType设置为all@suppp111-第一种方法将像第二种方法一样执行您想要的操作-您只需找出使用jQuery的选项(即$.ajax)一定是搞乱了-注意:XMLHttpRequest代码也是异步JavaScript和XML-实际数据传输是由
$执行的。ajax
使用XMLHttpRequest-因此,可能需要设置一些模糊的、未记录的jQuery选项来实际修复jQuey,AJAX的价值在于它是异步Javascript和Xml的缩写。您的两个代码段都使用AJAX,第一个代码段也使用jQuery。感谢大家的帮助!非常有用的知道!因此,我想做的是在不刷新页面的情况下上载此文件,我希望第一种方法可以做到这一点..猜测一下,不要设置
contentType:false
-事实上,不要将contentType设置为all@suppp111-第一种方法与第二种方法完全相同-您只需找出要使用的选项