2016-07-26 20 views
1

In einem Browser-Erweiterung, das ist mein Ajax-Aufrufmachen get Antrag auf derselben Domain zu geben CORS Fehler

var xhr = new XMLHttpRequest(); 
xhr.open('GET', window.location.href, true); 
xhr.responseType = "arraybuffer"; 
xhr.onload = function(event) { 
    alert(this.response); 
}; 

Ich verstehe wirklich nicht, warum mir diese geben den Fehler

Cross-Origin-Anforderung blockiert : Die gleiche Herkunft Richtlinie verbietet das Lesen der Remote-Ressource um http://people.cs.aau.dk/~torp/Teaching/E01/Oop/handouts/collections.pdf. (Grund: CORS-Header 'Access-Control-Allow-Origin' fehlt)

CORS kommt nur dann ins Bild, wenn wir die Anrufe in eine andere Domäne tätigen. Aber hier mache ich den Anruf zur selben Domain. Sie können Zeuge sein, dass in url xhr.open('GET', window.location.href, true);

Was ich hier fehlt?

enter image description here

+0

Wo ist der Code läuft dieser Fehler? Ihr Screenshot scheint der integrierte PDF-Viewer zu sein. Es ist wichtig, den Ausführungskontext dieses Codes zu kennen. –

+0

Hängt davon ab, woher der JavaScript-Code geladen wurde. –

+0

@MikeTrpcic Code wird in einer Browsererweiterung ausgeführt. Kann ich diesen Fehler trotzdem vermeiden? –

Antwort

1

Sie können einen Web-Service wie CrossOrigin.me nutzen vor, es zu bekommen. Ich benutzte einen Code wie diesen und es für mich arbeiten:

$.ajax({ 
    url: 'https://crossorigin.me/http://people.cs.aau.dk/~torp/Teaching/E01/Oop/handouts/collections.pdf', 
    jsonpCallback: 'callback', 
    type: 'GET', 
    success: function (data) { 
    console.log(data); 
    } 
}); 

Fiddle: http://jsfiddle.net/L84u10yj/

ich es, hier zu arbeiten machen konnte:

Preview