Is it possible to perform an external UPLOAD with ajax?

0

I have this code:

function uploadFile(x){


  //DEFINIÇÃO E RECEPÇÃO DAS VARIAVEIS PRA ENVIAR COM O AJAX
  var file              = document.getElementById("id_arq_documento_" + x ).files[0];
  var id                = document.getElementById("id_arq_" + x).value;
  var local_armazenado  = document.getElementById("local_armazenado_" + x).value;
  var autorizacao       = document.getElementById("autorizacao_" + x).value;

       //CHECA SE O INPUT FILE ESTÁ VAZIO...
        if(document.getElementById("id_arq_documento_" + x).files.length == 0){

            alert("Erro (" + x +"): Você deve selecionar um arquivo para envio");

        } else if(document.getElementById("local_armazenado_" + x ).value == 0){

            alert("Erro (" + x +"): Você deve informar o local de armazenamento");

        } else if( confirm('Deseja Realmente arquivar o documento? Esta ação não pode ser desfeita.')) {


        //SE O INPUT FILE NÃO ESTIVER VAZIO, EXECUTA A FUNÇÃO

          var formdata = new FormData();
          formdata.append("arqUP", file);
          formdata.append("autorz", autorizacao);

          var ajax = new XMLHttpRequest();
          ajax.upload.addEventListener("progress", progressHandler, false);
          ajax.addEventListener("load", completeHandler, false);
          ajax.addEventListener("error", errorHandler, false);
          ajax.addEventListener("abort", abortHandler, false);
          ajax.open("POST", "https://www.meusite.com.br/upload/upload.php?");
          ajax.send(formdata);

          //POR SEGURANÇA, QUANDO A FUNÇÃO FOR ACIONADA, IRà DESABILITAR O CAMPO processar E CHECKBOX
            document.getElementById("botao_processar_"+ x ).disabled = 'true';
            document.getElementById("progressBar_"+ x).style.display = 'block';
            document.getElementById("botao_processar_"+ x).style.display = 'none';


          function progressHandler(event){
          var percent = (event.loaded / event.total) * 100;
          document.getElementById("progressBar_"+ x).value = Math.round(percent);

          document.getElementById("status_"+ x).innerHTML = "Processando: " +Math.round(percent)+"%";


        }
        function completeHandler(event){

          document.getElementById("status_" + x).innerHTML = event.target.responseText;
          document.getElementById("progressBar_" + x).value = 0;

          document.getElementById("progressBar_" + x).remove();
          document.getElementById("botao_processar_" + x).remove();
          document.getElementById("id_arq_documento_" + x).disabled = 'true';
          document.getElementById("local_armazenado_" + x).disabled = 'true';
          document.getElementById("status_arquivo_" + x).innerHTML= '';
          alert('Up ok' + x);



        }
        function errorHandler(event){
          document.getElementById("status_" + x).innerHTML = "Falha ao enviar";
        }
        function abortHandler(event){
          document.getElementById("status_" + x).innerHTML = "Envio abortado";
        }

      }
    }

When I call the function inside my server, it executes normally:

ajax.open("POST", "upload.php");

But when I try to send POST to an external URL:

ajax.open("POST", "https://www.meusite.com.br/upload/upload.php?");

It returns me the error:

  

Failed to send

And in my Invisible Element console it appears:

  

Response to preflight request does not pass access control: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' link ' is therefore not allowed access.

I have already checked everything. Writing permissions on the remote server, everything.

What can it be? Any ideas?

    
asked by anonymous 29.07.2017 / 15:21

0 answers