2013-06-20 104 views
0

我正在EXTJS中製作一個組合框,它應該由REST服務填充。像這樣的例子: http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/form/forum-search.htmlEXTJS正確呼叫

我要讓這樣一個電話:

https://smartadresse.dk/service/locations/3/detect/json/granskoven%20glostrup?apikey=1E718C7E-70D7-4E3A-AB40-AF6671FDCB57 

但它使這樣的:

https://smartadresse.dk/service/locations/3/detect/json/?apikey=1E718C7E-70D7-4E3A-AB40-AF6671FDCB57&query=granskoven%20glostrup 

你怎麼知道ExtJS的改變是什麼?我的分機代理看起來是這樣的:

proxy: { 
    type: 'jsonp', 
    url : 'https://smartadresse.dk/service/locations/3/detect/json/', 
    extraParams: { 
     apikey: '1E718C7E-70D7-4E3A-AB40-AF6671FDCB57', 
    }, 
    reader: { 
     type: 'json', 
     root: 'streetName' 
    }, 
+0

你有沒有試過把它直接放在末尾'url:https:// smartadresse.dk/service/locations/3/detect/json/granskoven%20glostrup' – Patrick

+0

它工作正常,輸入「granskoven%20glostrup」。問題在於「granskoven%20glostrup」是發送到外部服務器的搜索詞。 –

回答

0

我也注意到,你實際上並沒有使用代理的type: 'rest',但JSONP一個爲type: 'jsonp'。您需要通過電話聯繫到不同的域名嗎?如果沒有,你應該改變類型來休息,看它是否以你期望的方式實現。

JSONP實際上與REST協議無關,它是爲了進入不同的域而不是你的頁面託管。 JSONP的工作方式類似於常規的ajax調用,因爲所有操作和參數都以發佈數據的形式發送,或者通過您的配置發送到url。不過從文檔看來,通過使用配置選項api可以得到你想要的結果,該選項的CRUD方法應該非常相似。

+0

我要去一個不同的域。嘗試使用api參數。然而,不確定我應該寫什麼代碼。什麼進入 API:{ 創建: '*', 讀: '*', 更新: '*', 破壞: '*' }, –

+0

看起來像你正在嘗試做一讀,所以API :{ create:undefined, 閱讀:「granskoven%20glostrup」, 更新:undefined, 破壞:undefined }可能工作。 – Reimius

+0

不確定你是否做了其他動作,但是如果是這樣的話你必須定義它們。 – Reimius