2012-04-24 98 views
1

我想設置一個網站在本地文件系統上運行並調用XML文件,但我得到訪問控制源錯誤:jquery - 從本地文件系統加載XML文件沒有跨域錯誤

Access-Control-Allow-Origin不允許原始位置爲null。

我已經嘗試切換到數據類型和JSONP跨域設置爲true:

$j.ajax({ 
      crossdomain: true, 
      url: 'xml/vehicles.xml', 
      dataType: "jsonp",  
      success: function(vehicleXML) { 
       supertree.parseVehicles($j(vehicleXML).find("vehicles"), null); 
       supertree.vehiclesLoaded = true; 
       if(supertree.scenesLoaded) supertree.ready(); 
      } 
     }); 

但它不工作。有關如何完成此任何想法?最好沒有代理?

+0

由於您使用的是文件系統,因此有一個全新的限制和跨瀏覽器差異列表。例如,Chrome將不允許您對文件系統執行任何XMLHTTP請求,除非您使用正確的標誌運行chrome。其他瀏覽器可能會允許請求沒有問題。更改爲JSONP而不是XML將成爲處理該問題的最具跨瀏覽器的方式。 – 2012-04-24 15:41:11

回答

2

Same origin policy阻止您訪問數據。要請求數據的服務器需要啓用CORS,或者您需要在服務器上使用代理來從其他服務器獲取數據。

其他選項是將XML數據更改爲JSONP格式。這並不像告訴jQuery發出JSONP請求那麼簡單。數據格式完全不同,服務器必須返回該格式,但JavaScript無法做到這一點。