2011-07-27 61 views
0

我在與加載煎茶店的問題。我店的聲明是這樣的:煎茶錯誤的XMLHttpRequest無法加載的http://本地主機....原產地空沒有被允許訪問控制允許來源

Ext.regModel('Car',{ 

     idProperty: 'id', 
     fields: [ 
       //'id', 'company', 'driver', 'carType','xCoordinate','yCoordinate'     
       {name: 'id', type: 'int'}, 
       {name:'company', type:'string'} , 
       {name:'driver', type:'string'}, 
       {name:'carType', type:'string'}, 
       {name:'xCoordinate', type:'int'}, 
       {name:'yCoordinate', type:'int'} 

       ]         

    }); 

var strr= new Ext.regStore({ 

     id:'carStore', 
     model:'Car', //configuration option is the cars 

     proxy: { 
      type: 'ajax', 
       url: 'http://localhost:8080/A/carStore.html&callback=?', 
       reader: { 
       type: 'json', 
       root: 'carss' 
       }, 
     }, 
     autoLoad: true 
}); 

而且我保持在列表中的商店:

CarManagementSystem.views.carList = new Ext.List({ 
     id: 'carList', 
     store: 'carStore', 

     onItemDisclosure: function (record) { 

      var selectedCar = record; 
      CarManagementSystem.views.addNewCar.load(selectedCar); 
      CarManagementSystem.views.viewport.setActiveItem('addNewCar', { type: 'slide', direction: 'left' }); 
     }, 
     itemTpl: '<div class="list-item-id">{id}</div>' +'<div class="list-item-driver">{driver}</div>' 
    }); 

然而,當我試圖用我的JSON文件加載列表中,我得到這個錯誤:

的XMLHttpRequest無法加載http://localhost:8080/A/carStore.html&callback=?&_dc=1311751412006&limit=25。 Access-Control-Allow-Origin不允許Origin null。 煎茶觸摸-debug.js:7212

遺漏的類型錯誤:無法讀取的不確定

財產「長度」我讓我的JSON文件中的HTML格式,並將其保存在服務器上。我會很感激任何幫助。

謝謝!

回答

0

使得AJAX請求時,你不能打一個端口號(8080)。如果您最終需要跨域請求,請將您的代理類型更改爲'scripttag'。

0

你會從「AJAX」代理類型「類型:‘scripttag’

1

您所遇到的經典問題CORS。

  • 這是一個瀏覽器安全,稱爲網絡安全。如果您處於開發模式,則可以運行Chrome並禁用此標誌。但是如果你在瀏覽器上運行你的應用程序,你將需要繞過這個Ajax規範限制。
  • 要繞過它,你可以使用proxys(如在同一個域中創建一個後臺腳本將加載你的資源),也可以使用JSON-P。爲此,您需要更改存儲到腳本標籤,而且你將需要服務器能夠檢測回調PARAM並將其發送給您的DOM插入時自動執行的JS功能。

我會補充說,在Phonegap中運行時你不會遇到這個問題,因爲PhoneGap沒有運行web服務器,而是通過file://協議提供文件。

如果您想了解更多,我推薦,因爲它是開發移動Web應用程序時,你應該學習什麼JSON-P是CORS是什麼,以及它是如何工作的共同PB。

相關問題