簡體   English   中英

Rails清單資產未定義或不是對象,而IE8中的AJAX請求

[英]Rails manifest assets is undefined or not an object, while AJAX request in IE8

我正在嘗試從Manifest.json文件中通過ajax獲取某些文件的文件名(以便稍后通過ajax獲取它們),因為我們的文件名已被消化。 為此,我使用以下代碼:

$.ajax({
    url: assetUrl + '/manifest.json',
    async: false,
    success: function(xhr){
        for(var polyfill in polyfills){
            if(polyfills.hasOwnProperty(polyfill)){
                polyfills[polyfill] = xhr['assets'][polyfill];
                //also tried:
                //polyfills[polyfill] = xhr.assets[polyfill];
            };
        };
    },
    error: function(e){
    }
});

當我從本地主機運行腳本時,在IE8中運行正常,但是在開發服務器上運行腳本后,我立即收到錯誤消息,即資產為空或不是對象,即使它存在於服務器上並具有與我的本地主機上的文件完全相同的結構。 兩種情況下IE8均以標准模式運行。

知道背后可能會有什么嗎? 還是有更好的方法從預編譯資產中通過Ajax獲取文件? 我不想每次都將它們復制到文件夾公共文件夾中。

編輯:

開發服務器與本地主機的配置略有不同(例如,文件已預編譯,這就是為什么我必須遍歷manifest.json的原因)。

manifest.json的內容如下所示:

{
"files":{
   "file1-734fcaba023083e43850b25addddd642.eot":{
      "logical_path":"file1.eot",
      "mtime":"2015-07-30T08:26:32+00:00",
      "size":2812,
      "digest":"734fcaba023083e43850b25addddd642"
     },
     ....
}
"assets":{
          "file1":"file1-ea625da9302d183ca2b0c75e61ba88d9.eot",
          ....
}
}

解決了,結果證明開發服務器使用https://,當使用jQuery.ajax()時,顯然有很大的不同,而使用jQuery.getJSON()代替了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM