Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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 Post blob对象给出了未捕获的TypeError:非法调用_Javascript_Jquery_Ajax_Post_Blob - Fatal编程技术网

Javascript jQuery Post blob对象给出了未捕获的TypeError:非法调用

Javascript jQuery Post blob对象给出了未捕获的TypeError:非法调用,javascript,jquery,ajax,post,blob,Javascript,Jquery,Ajax,Post,Blob,我正试图使用jQuerypost发布一个文件,并获取TypeError:非法调用 function fbUpload(token){ var dataURL = canvas.toDataURL('image/jpeg', 1.0) var blob = dataURItoBlob(dataURL) $.post( "https://graph.facebook.com/me/photos", { 'access_token': token, 'source': b

我正试图使用jQuery
post
发布一个文件,并获取
TypeError:非法调用

function fbUpload(token){
  var dataURL = canvas.toDataURL('image/jpeg', 1.0)
  var blob = dataURItoBlob(dataURL)

  $.post( "https://graph.facebook.com/me/photos", {
    'access_token': token,
    'source': blob
  }, function( data ) {
    console.log(data);
  });
}
可能是因为“斑点”吗

这很好:

function fbUpload(token){
  var dataURL = canvas.toDataURL('image/jpeg', 1.0)
  var blob = dataURItoBlob(dataURL)
  var formData = new FormData()
  formData.append('access_token', token)
  formData.append('source', blob)

  var xhr = new XMLHttpRequest();
  xhr.open( 'POST', 'https://graph.facebook.com/me/photos', true )
  xhr.onload = xhr.onerror = function() {
    console.log( xhr.responseText )
  };
  xhr.send( formData )
}

您需要使用
$.ajax
并向
数据
参数提供
FormData
对象<代码>$。post仅将数据作为字符串或普通对象。试试这个:

function fbUpload(token){
    var dataURL = canvas.toDataURL('image/jpeg', 1.0)
    var blob = dataURItoBlob(dataURL)
    var formData = new FormData()
    formData.append('access_token', token)
    formData.append('source', blob)

    $.ajax({
        url: "https://graph.facebook.com/me/photos", 
        type: 'POST',
        data: formData,
        processData: false,
        contentType: false,
        success: function(data) {
            console.log(data);
        }
    });
}

您需要使用
$.ajax
,并将
FormData
对象提供给
data
参数https://graph.facebook.com/me/photos",formData…收到相同的错误
contentType:false
阻止$.ajax设置内容类型标头。这将允许基础xmlhttprequest将内容类型设置为具有正确边界的多部分表单数据