2016-04-29 6 views
0

Ich bin in der Lage eine Basis 64 kodierte Bild über Postbote und sogar über meine App zu schreiben, wenn ich einfach Javascript Anfrage wie folgt verwenden:ng-Datei-Upload-Cross-Domain-Fehler

var data=  "userPhoto=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABAQEAS ................(image data) Rd1bbfc2B%2FdDXGWxWHtA2N6NrL%2BLNf6wIa92a5m5v2s0c7tObhgdJMdV6Rm4mt7YkqukTMsv2vVsgl5j73tQasFOHYMP3nqf%2F%2FZ"; 
var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 
xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === 4) { 
    console.log(this.responseText); 
} 
}); 

xhr.open("POST", "http://localhost:8000/test2"); 
xhr.setRequestHeader("cache-control", "no-cache"); 
xhr.setRequestHeader("postman-token", "b98cbdf1-8918-b8fb-6b50- a626c301cffc"); 
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded"); 
xhr.send(data); 

Aber wenn ich die einfache Verwendung Code kopiert von ng-file-upload

HTML:

<div class="button" ngf-select ng-model="file" name="file" ngf-pattern="'image/*'" ngf-accept="'image/*'" ngf-max-size="20MB" ngf-min-height="100" ngf-resize="{width: 100, height: 100}">Select</div> 

Script:

erhalte ich eine Cross-Domain-Fehler:

XMLHttpRequest cannot load 'url'. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

Im Grunde habe ich versucht, alle verschiedenen Kombinationen von tatsächlichen Szenario zu den einfachsten Anwendungsfall vereinfachte Version auf der Website zu starten. Es ist nur ich oder Winkelfehler sind wirklich frustrierend wegen der vielen Schichten dazwischen. C# war definitiv nicht so schwer

Antwort

1

Okay, herausgefunden. In der Upload-Funktion habe ich die gesamte URL verwendet http://localhost:8000/test1, aber ich sollte nur /test1

verwenden