[JS] File-Download per AJAX

04/27/2015 22:33 manniL#1
Heyho Leute,

ich habe folgendes Problem. Ziel ist es, per AJAX einen POST-Request an die Datei download.php zu senden, welcher die Download-URL enthalten soll. Daraufhin soll die download.php den Download der Datei, dessen URL gesendet wurde, initialisieren.
Letzteres ist bereits geschafft, somit macht die download.php was sie soll. Mein momentanes Problem ist, dass ich weder per AJAX-Post noch per form submit zum Download komme.
Falls es relevant ist, soll die Seite nach dem Download aktualisiert werden.

Das ganze binde ich mit PHP ein, da zuvor gewisse Konditionen erfüllt werden müssen.

Folgende Ansätze habe ich bis jetzt verfolgt:

Form-Submit-Methode
Code:
if($red) echo'
      var form = document.createElement("form");
		    form.setAttribute("method", "post");
		    form.setAttribute("action", "download.php");
        form.setAttribute("target", "_blank");
        var hiddenField = document.createElement("input");		
        hiddenField.setAttribute("name", "url");
        hiddenField.setAttribute("value", "'.$_POST['url'].'");
        form.appendChild(hiddenField);
        var hiddenField2 = document.createElement("input");		
        hiddenField2.setAttribute("type", "submit");
        hiddenField2.setAttribute("value", "submit");
        form.appendChild(hiddenField2);
        document.body.appendChild(form);    // Not entirely sure if this is necessary			
        form.submit();
        //setTimeout(function () { window.location.reload(); }, 10);
        });'
POST
Code:
<? if($red) echo'
      $.post("download.php", { url: "'.$_POST['url'].'" }, function() {
        window.location.reload();
      });';?>
Hat wer ne Idee?
05/03/2015 13:41 VW Käfer#2
Dafür gibt es ein JQUERY-Plugin: [Only registered and activated users can see links. Click Here To Register...]
Ich hoffe aber dass dein Code nur zum Testen ist und nicht so eingesetzt wird. Deine POST-Variablen sind nämlich ein Blankoscheck für XSS...
05/03/2015 14:05 manniL#3
Quote:
Originally Posted by VW Käfer View Post
Dafür gibt es ein JQUERY-Plugin: [Only registered and activated users can see links. Click Here To Register...]
Ich hoffe aber dass dein Code nur zum Testen ist und nicht so eingesetzt wird. Deine POST-Variablen sind nämlich ein Blankoscheck für XSS...
Hat sich bereits geklärt :)

Natürlich gebe ich die POST-Variablen nicht einfach so weiter, das war nur zur vereinfachung des Codesnippts.
05/04/2015 20:00 snow#4
#closed (on request)