Добрый день. Прошу совета у разработчиков на Javascript.
Я пробую загрузить файл, из своего приложения. Написано на Oracle mod_plsql + Javascript (JQuery). Для загрузки файлов использую плагин
jquery fileupload
который должен поддерживать cross domain загрузку
https://github.com/blueimp/jQuery-File-Upload/wiki...
Но при формировании запроса он вставляет origin, что нарушает требования api yandex disk
"Загрузка файла на полученный URLФайл следует отправить с помощью метода PUT на URL для загрузки, в течение 30 минут после получения этого URL (через 30 минут ссылка перестанет работать и ее нужно будет запросить заново).Загрузка файла в хранилище не требует OAuth-токен. Примечание. В запросе не следует указывать заголовок Origin. В общем случае на запрос с непустымOrigin API отвечает HTTP-кодом 500. "
Прошу помощи, как решить эту проблему
Сам пример (в примере немного затер часть токена)
Получаю путь
var _formData;
var formURL;
$.ajax({
url: "
https://cloud-api.yandex.net/v1/disk/resources/upl...",
async: false,
dataType: "json",
type: 'get',
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'OAuth 8317f5afab3e4a0fa1610bd59d57');
},
success: function(result) {
formURL = result.href;
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status+' '+thrownError);
}
});
Запрос благополучно отработал, я получил что-то вроде
"
https://uploader18h.disk.yandex.net:443/upload-tar..."
Вешаю обработчик на стандартный выбор файла
$("#yd").fileupload({
forceIframeTransport: true,
type: "PUT",
url: formURL,
beforeSend: function(xhr) {
},
done: function (e, data) {
null;
},
fail: function (e, data) {
alert(data.jqXHR.status+' '+data.errorThrown);
}
});
Но при выборе файла я получаю сообщение об ошибке
jquery-1.8.3.js:8434 OPTIONS
https://uploader18h.disk.yandex.net/upload-target/...
(index):1 XMLHttpRequest cannot load
https://uploader18h.disk.yandex.net/upload-target/... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '
alcides.fors.ru:802' is therefore not allowed access. The response had HTTP status code 500.
Пробовал затирать origin, но это не проходит
beforeSend: function(xhr) {
xhr.setRequestHeader('Origin', formURL);
},
Ну вот и все, прошу совета как загрузить файлы в yandex disk
Спасибо