Неожиданное исключение безопасности Flash, когда Используя URLLoader

Ну, это является едва основным, но я использую шепелявость для такого количества моего кода исследования, как управляемо. Это - безусловно лучший язык, который я нашел для баланса динамизма & выразительность при тихой генерации достойной производительности для численных данных, и т.д.

6
задан Nifle 13 August 2009 в 06:56
поделиться

3 ответа

Возможно, contentType относится не к тем, какие данные вы отправляете, а к тем, какие данные вы получаете. Попробуйте установить requestHeaders , это должно работать:

urlRequest.requestHeaders.push(new URLRequestHeader('Content-type', 'multipart/form-data'));

Кроме того, я нашел фрагмент кода в одном из моих проектов. Код работает и отправляет на сервер некоторые двоичные данные в формате JPEG с помощью POST. Я сделал это некоторое время назад и не могу объяснить, почему я сделал это таким образом, но, возможно, это помогает. Я вставляю его как есть:

function sendData(submitPath:String, descriere:String):void {
    // building the url request for uploading the jpeg to the server
    var header:URLRequestHeader = new URLRequestHeader('Content-type', 'application/octet-stream');
    var jpgURLRequest:URLRequest = new URLRequest(submitPath+'/id/'+player.id+'/path/'+player.contentPath.replace('/','')+'/width/'+player.videoWidth+'/height/'+player.videoHeight+'/descriere/'+descriere+'/timp/'+time);
    jpgURLRequest.requestHeaders.push(header);
    jpgURLRequest.method = URLRequestMethod.POST;
    jpgURLRequest.data = screenShot;

    // sending the data to the server
    var sender:URLLoader = new URLLoader();
    sender.load(jpgURLRequest);
}
13
ответ дан 8 December 2019 в 04:30
поделиться

Для полноты картины , вот как я закончил настройку своего объекта URLRequest (все остальное осталось прежним):

urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData('filename', pngFile);
urlRequest.requestHeaders.push(new URLRequestHeader('Cache-Control', 'no-cache'));
urlRequest.requestHeaders.push(new URLRequestHeader('Content-Type', 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary()));

Ключ, как указал evilpenguin, состоял не в том, чтобы вообще устанавливать свойство contentType, а в том, чтобы поместить его в заголовок. Однако, используя только 'multipart / form-data', я получил ошибку на стороне сервера о недопустимых границах POST, поэтому в итоге я использовал класс с именем UploadPostHelper для создания допустимой границы и тела POST для загрузки файлов. .

Это исправило загадочную ошибку безопасности (я до сих пор не знаю, почему это произошло) и очень долгое ожидание загрузки.

8
ответ дан 8 December 2019 в 04:30
поделиться

У меня была такая же проблема. Он отлично работал при отправке сценария PHP, но не сценария ASP. После перемещения типа контента в requestHeader он работает правильно. Вот мой код:

// Object containing form fields
var formdata = new Object();
formdata.Email = textArray[8].text;

//URLRequest containing the form fields and the attached image
var urlRequest : URLRequest = new URLRequest(url);
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData( imageName, imageByteArray, formdata );
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );
urlRequest.requestHeaders.push(new URLRequestHeader('Content-Type', 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary())); 

//URLLoader to load the request
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load( urlRequest );
4
ответ дан 8 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: