簡體   English   中英

Angularjs $ http從IE9中的本地磁盤問題加載數據

[英]Angularjs $http load data from local disk issue in IE9

Angularjs,角度為1.2.0-rc.2

$http.get("gridData.json")
        .success(function(data, status, headers, config){
            angular.extend($scope.model.entities, data.entities);
        })
        .error(function(data, status, headers, config){
            alert("x");
        });

從服務器加載頁面時,或使用firefox或chrome在本地磁盤上運行頁面時,此代碼運行完全正常。 但是當在IE9中從磁盤加載頁面時(沒有在其他IE版本中測試),它總是轉到錯誤功能。 在調試時,當發生錯誤時,數據,狀態,標題都是未定義的,除了config有內容。

任何人都有任何想法? 可以是任何解決方案?

這是由於相同的原始政策你會在chrome中看到相同的錯誤。 Chrome和IE不允許本地ajax請求。 有辦法做到這一點,例如chrome你必須用一些特殊標志啟動它

http://joshuamcginnis.com/2011/02/28/how-to-disable-same-origin-policy-in-chrome/

C:\Users\YOUR_USER\AppData\Local\Google\Chrome\Application\chrome.exe --allow-file-access-from-files --disable-web-security

並且你可以將安全設置降低到最低限度。

還有其他解決方案,如jQuery $ .ajax作為本地HTML文件運行,避免SOP(相同的原始策略)

使用jquery的

$.support.cors = true;

另一種方案
嘗試將json數據放入js文件或您的服務器,這樣您就不必對本地文件執行任何ajax請求

其他來源:
如何規避同源政策
http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

暫無
暫無

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

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