2017-11-20 2 views
-1

Hinweis: - Ich bearbeite tatsächlich meine alte Frage, also ignoriere Antworten.Wie sende ich die Xml-Daten über XHR, wenn der Origin Header fehlt?

Ich möchte einige XML-Daten senden, auf eine Website, die für Demo-Zwecke seiner Online tatsächlich ist,

So, hier ist der Code,

<script> 

var params = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" 
"xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" 
"xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" 
"<soap:Body>" 
    "<TransferBalance xmlns='http://www.altoromutual.com/bank/ws/'>" 
    "<transDetails>" 
    "<transferDate>2000-01-01</transferDate>" 
    "<debitAccount>20</debitAccount>" 
    "<creditAccount>21</creditAccount>" 
    "<transferAmount>240</transferAmount>" 
    "</transDetails>" 
    "</TransferBalance>" 
"</soap:Body>" 
"</soap:Envelope>"; 

var xhr = new XMLHttpRequest(); 

xhr.onreadystatechange=function(){ 
    if(xhr.readyState==4 && xhr.status==200){ 
    console.log(xhr.responseXML); 
    } 
} 

xhr.open("POST" ,"http://demo.testfire.net/bank/ws.asmx"); 

xhr.setRequestHeader("SOAPAction", "http://www.altoromutual.com/bank/ws/TransferBalance"); 

xhr.setRequestHeader("Content-Type", "text/xml"); 



xhr.send("params"); 

</script> 

Wenn ich jetzt das Netzwerk Panel meine OPTIONEN Anfrage war gut gegangen, aber wo ist meine ursprüngliche Anfrage?

Wenn ich die Konsole sehe, sagt es, dass Access Control Origin Erlauben fehlt? Nun, wie kann ich das tun?

Gibt es eine Möglichkeit, dies zu tun?

+0

Haben YouTube versucht, das @ zu entfernen? – cramopy

Antwort

2

Verwenden Sie die tmp_name Schlüssel als ersten Parameter in den move_uploaded_file

$_FILES['filename']['tmp_name']; 

Nur ein Heads-up, da Sie eine Datei-Upload-Modul schreiben, richtig für die MIME-Typen überprüfen.

für PHP 5.3+ verwenden finfo()

$finfo = new finfo(FILEINFO_MIME); 
print_r($finfo->buffer(file_get_contents($_FILES['filename']['tmp_name']))); //returns the mime type. Example (image/png) 

Ganz am Anfang des Skripts Fehlerberichterstattung hinzufügen.

error_reporting(E_ALL); 

Entfernen Sie auch die @ neben $_FILES. Das ist ein Fehlerunterdrücker.

Stellen Sie außerdem sicher, dass filename tatsächlich im $_FILES Array vorhanden ist. Führen Sie eine print_r($_FILES); zu überprüfen, ob es tatsächlich existiert

+0

Ich habe das gleiche getan, aber das Ergebnis ist gleich "else {}" –

+1

überprüfen Ordner Berechtigungsproblem? und überprüfen Sie auch das Fehlerprotokoll. – Himan

+0

Aktivieren Sie auch die Fehlerberichterstattung. Überprüfen Sie auch auf Fehler beim Upload. Ich werde meine Antwort bearbeiten – Akintunde007

0

Verwenden Sie diese, wie PHP die Datei mit einem temporären Namen speichert

move_uploaded_file(@$_FILES['filename']['tmp_name'], $original_path1) 

Stellen Sie außerdem sicher, dass Sie den Ordner Berechtigungsproblem (sehr häufig) und error_log als auch überprüfen .

Verwandte Themen