Estoy tratando de publicar un archivo usando jQuery post y obtengo TypeError: Illegal invocation
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); }); }¿Podría ser por la 'mancha'?
Esto está funcionando bien:
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 ) }Debe usar $.ajax y proporcionar el objeto FormData al parámetro de data . $.post solo toma datos como una cadena o como un objeto simple. Prueba esto:
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); } }); }