2013-11-23 29 views
1

我想從我的GitHub存儲庫中讀取一些源代碼(C語言),以在我的網頁中顯示爲文本。我可以通過https://raw.github.com以原始模式訪問代碼。從GitHub中讀取代碼作爲網頁中的文本(原始)

我正在使用jQuery GET函數來讀取數據,但它不起作用。問題與XMLHttpRequest和Access-Control-Allow-Origin有關,但是,儘管我在stackoverflow上找到了一些相關的問題(XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin),但它並不適用於我。我嘗試了一切。

我的jQuery代碼:

<script type="text/javascript"> 
    $(document).ready(function() { 
    var url = 'https://raw.github.com/raysan5/raylib/master/examples/ex01_basic_window.c'; 

    $.get(url, function(data) { 
     $('#code').text(data); 
     }, 'text'); 
    }); 
</script> 

請,可能有人能幫我解決這個問題?非常感謝!

回答

3

你可以嘗試刪除之間的原料和GitHub上的點:

https://rawgithub.com/raysan5/raylib/master/examples/ex01_basic_window.c 

rawgithub.com,也說明了這blog post

GitHub上阻礙了這一點,因爲他們希望回購業主使用Github上要託管其文件的特定版本的頁面。他們通過使用Content-Type: text/plain而不是Content-type:application/javascript提供來自「raw」域的文件來阻止它。

直到最近,Google Chrome實施了一個安全修復程序,如果它有不正確的Content-type,就會阻止JavaScript被執行。
當您正在查看不受控制的頁面時,這很有意義。但是當你決定要包含什麼腳本時,這是一件麻煩事。

由於Rob Wcomments below

值得一提的是,這個Web服務解決了OP的問題的唯一原因是,它包括Access-Control-Allow-Origin: *響應頭

+0

不錯。值得一提的是,這個Web服務解決OP問題的唯一原因是它包含'Access-Control-Allow-Origin:*'響應頭。 –

+0

@RobW好點。我已經將它包含在答案中以提高可見性。 – VonC

+0

@VonC令人難以置信!有用!非常感謝! :D – Ray

相關問題