2011-11-02 102 views
1

我有一個簡單的模型:ExtJS的4 - 跨域策略

Ext.define('MovieModel', { 
     extend : 'Ext.data.Model', 
     fields : [ { 
      name : 'Title', 
      mapping : '@title', 
      type : 'string' 
     } ], 

     proxy : { 
      type : 'ajax', 
      url : 'http://www.imdbapi.com/?r=xml&plot=full', 
      method : 'GET', 
      reader : { 
       type : 'xml', 
       record : 'movie' 
      } 
     } 
    }); 

但這代碼不支持跨域策略。我怎麼能解決它?

回答

1

首先擺脫r=xml PARAM的。取而代之的ajax代理使用jsonp之一:

proxy : { 
     type : 'jsonp', 
     url : 'http://www.imdbapi.com/?plot=full', 
     // jsonp uses its special method for retrieving data. So no need for the following row 
     //method : 'GET', 
     reader : { 
      type : 'json', 
      // the record param is used when data is nested construction 
      // which is not true in your case 
      //record : 'movie' 
     } 
    } 

這裏是demo

+0

我試過了,出現錯誤'回調未定義' – bontade

+1

@bontade,沒錯。 'callback = callback'不需要。更新了我的答案(查看[demo](http://jsfiddle.net/molecule/LSnda/))。 –

+0

非常感謝@Molecule Man。它幫助了我 – bontade