2017-04-15 1 views
1

Ich bin mit Firefox Konsole einige JS aus einem Github-Seite (https://github.com/user/repo/pull/1/files speziell) laufen.Content Security Policy blockiert AJAX aber die Domäne gilt

Ich möchte in der Lage sein, den Inhalt einer Datei des Repo zu laden, und dass ich mit

var client = new XMLHttpRequest(); 
client.open("GET", "https://github.com/user/repo/raw/master/path-to-file", true); 
client.onreadystatechange = function() { 
    alert(client.responseText + client.responseURL); 
} 
client.send(); 

Das Problem ist, dass der Inhalt tatsächlich an https://raw.githubusercontent.com/user/repo/master/path-to-file ist und die URL I Ich lade (das ist die, die die Raw-Schaltfläche auf der github-Webseite verweist) umgeleitet wird.

Firefox Fehler in der Konsole mit:

Content Security Policy: The page’s settings blocked the loading of a resource at 
https://raw.githubusercontent.com/user/repo/master/path-to-file 
(“connect-src https://github.com https://uploads.github.com 
https://status.github.com https://collector.githubapp.com 
https://api.github.com https://www.google-analytics.com 
https://github-cloud.s3.amazonaws.com wss://live.github.com”). 

Gibt es eine Möglichkeit, die Datei in irgendeiner Weise zu laden?

Ich denke, ich muss die Anfrage von der Github-Seite ausführen, so dass eine Datei zugänglich ist, auch wenn es in einem privaten Repo ist (da die Sitzung des Benutzers verwendet wird, wenn Sie die Anfrage senden).

Ich sende eine Anfrage an eine Seite, dass es in der CSP ist, und diese Seite tut die Umleitung, also sehe ich nicht, warum die CSP mich blockieren sollte, da ich nicht versuchte, auf eine "unbefugte" zuzugreifen Ressource.

Die Alternative wäre, die GitHub-Webseite unter https://github.com/user/repo/blob/master/path-to-file zu laden, aber das bedeutet, ich müsste es analysieren, um alle angezeigten Tags zu entfernen, und es ist brüchig, da jede Änderung an Github das Skript brechen könnte.

Antwort

-1

Mit Ajax können Sie nicht eine Anfrage zu einer Seite auf einer anderen Domäne machen.

+0

Wie Sie aus den entsandten Code sehen kann ich nicht eine Anfrage an einen anderen Domäne zu machen, ich bin Senden einer Anfrage an 'https://github.com/user/repo/raw/master/path-to "Datei", das ist genau die gleiche Domäne, auf der ich bin. Die Tatsache, dass die Seite zu einer anderen Domäne Umleitungen ist aus meiner Kontrolle –

+0

Leider dachte ich Ihre Seite auf github.io gehostet wurde und Sie eine Anfrage an github.com machen. weil die Domains nicht mit dem Sicherheitsproblem übereinstimmen. – noyanc

+0

ich hinzugefügt, um die Seite, die ich die Anfrage aus Gründen der Klarheit machen würde, wie es wahr ist, dass es die Domäne von Github mehrdeutig gewesen sein konnte, war es aus –

Verwandte Themen