2013-10-13 16 views
0

我遇到從$ .get()從文件加載數組的問題。我得到一個很好的HTTP狀態代碼,以便訪問該文件,但不會將其轉換爲數組。從文件ino加載數組的問題jQuery數組

下面的代碼我有

$(function() { 

    $.get('https://gist.github.com/storbeck/6956620/raw/e274c8af60ef25e7bc481fded0c9e4e8e8412e75/testdata', function(data) { 
     $('#container').highcharts('StockChart', {  

      rangeSelector : { 
       selected : 1 
      }, 

      title : { 
       text : 'Test Data' 
      }, 

      series : [{ 
       name : 'Data', 
       data : data, 
       tooltip: { 
        valueDecimals: 2 
       } 
      }] 
     }); 
    }); 
}); 

下面是它目前的代碼不工作的jsFiddle

我能夠通過將數組複製/粘貼到數據變量中而不使用$ .get,因此我不認爲數組是問題。這裏的that version

我遇到的另一件事是在Highcharts的時代,當我在在線轉換器中測試時間時,它轉換時間就好了。

回答

2

你得到一個空的結果因爲 您正嘗試加載的頁面有Access-Control-Allow-Origin標頭 限制誰可以遠程加載頁面。 $ .ajax,$ .post,$ .get都不會加載此頁面,因爲它們被阻止。

如果加載腳本到本地瀏覽器,你會在你的瀏覽器控制檯日誌中看到:

XMLHttpRequest cannot load 
https://gist.github.com/storbeck/6956620/raw/e274c8af60ef25e7bc481fded0c9e4e8e8412e75/testdata. 
Origin http://www.yourdomain.com is not allowed by Access-Control-Allow-Origin. 
0

其來源相同的,政策問題...

如果你有訪問該文件,生成數據,你可以使用JSONP,該數據應以回調函數進行格式化。 如果你訪問服務器,你可以添加這樣的事情:

Access-Control-Allow-Origin: ... 

但只可能對你的工作方式,是有PHP, ASP或任何腳本首先得到的結果,然後再調用腳本與你的ajax。但是這應該在c的同一個域上。

希望它有幫助。

0

這是因爲Same Origin Policy

的一種方式,你可以解決,這是通過請求您的服務器,那裏有沒有問題,這個在文件上,然後使得AJAX GET調用服務器:

在您的服務器上創建一個新頁面,並請求該頁面中的gist文件並返回其內容作爲響應。當然,你需要動態頁面這個工作

更改端點在你的jQuery $.get到該頁面,例如:www.mydomain.com/highchartvalues

利潤