No, jQuery, don't processData!

processData (default: true)
Type: Boolean
By default, data passed in to the data option as an object (technically,
anything other than a string) will be processed and transformed into a
query string, fitting to the default content-type
"application/x-www-form-urlencoded". If you want to send a DOMDocument,
or other non-processed data, set this option to false.

https://api.jquery.com/jQuery.ajax/
This commit is contained in:
lilia 2014-10-25 19:48:54 -07:00
parent 211129475c
commit e35148add8

View file

@ -257,16 +257,17 @@ window.textsecure.api = function() {
var id_regex = RegExp( "^https:\/\/" + ATTACHMENT_HOST + "\/(\\d+)\?");
self.putAttachment = function(encryptedBin) {
return doAjax({
call : 'attachment',
httpType : 'GET',
do_auth : true,
call : 'attachment',
httpType : 'GET',
do_auth : true,
}).then(function(response) {
return new Promise(function(resolve, reject) {
$.ajax(response.location, {
type : "PUT",
headers : {"Content-Type" : "application/octet-stream"},
data : encryptedBin,
success : function() {
type : "PUT",
headers : {"Content-Type" : "application/octet-stream"},
data : encryptedBin,
processData : false,
success : function() {
try {
// Parse the id as a string from the location url
// (workaround for ids too large for Javascript numbers)