2016-05-04 7 views
1

Gemäß documentation kann requestData den ArrayBuffer-Parameter verarbeiten. Jedoch wenn ich versuche, dies:Anforderung qx.io.request.Xhr mit Array in Anforderung senden

var buf = new ArrayBuffer(16); 
var ar = new Uint8Array(buf); 
for(var i = 0; i < ar.length; i++) 
    ar[i] = i * 10; 
request = new qx.io.request.Xhr(); 
request.setUrl(url); 
request.setRequestData(buf); 
request.send(); 

bekomme ich folgende Fehlermeldung:

Error: params must be either string or object 

Was mache ich falsch?

+0

Ich habe es nicht ausprobiert, aber wahrscheinlich haben Sie 'request.setMethod ('POST');' wie in https gesehen: // github.com/qooxdoo/qooxdoo/blob/master/framework/source/class/qx/test/bom/request/SimpleXhr.js#L337 –

+0

Danke, Tobi, das löst es! Kannst du es bitte als Antwort posten, damit ich es annehmen kann? – user1617735

Antwort

1

Sie haben die Methode setzen

request.setMethod('POST'); 

vor request.send() Aufruf zu veröffentlichen. So Ihr Beispiel würde wie folgt aussehen:

var buf = new ArrayBuffer(16); 
var ar = new Uint8Array(buf); 
for(var i = 0; i < ar.length; i++) { 
    ar[i] = i * 10; 
} 
request = new qx.io.request.Xhr().set({ 
    url: url, 
    requestData: buf, 
    method: 'POST' 
}).send(); 

siehe auch https://github.com/qooxdoo/qooxdoo/blob/master/framework/source/class/qx/test/bom/request/SimpleXhr.js#L337

Verwandte Themen