2009-10-29 53 views
4

我正在編寫一些代碼來教育我自己的方式ExtJS。我也是JSON的新手,希望這個問題很容易讓你回答。我試圖從我寫的基本Web服務中檢索一些數據,其中應該將其結果作爲JSON返回(因爲我是JSON的新手 - 可能是因爲它已被破壞)。ExtJS - SyntaxError:missing)在括號中

我得到的錯誤是

SyntaxError: missing) in parenthetical

,我從我的web服務返回JSON是

{ 
    "rows": [ 
    { 
     "id": "100000", 
     "genre_name": "Action", 
     "sort_order": "100000" 
    }, { 
     "id": "100002", 
     "genre_name": "Comedy", 
     "sort_order": "100002" 
    }, { 
     "id": "100001", 
     "genre_name": "Drama", 
     "sort_order": "100001" 
    }] 
} 

我的ExtJS的代碼如下所示。該loadexception回調是我已經檢索到的上述來自

var genres = new Ext.data.Store({ 
    proxy: new Ext.data.HttpProxy({ 
     method: 'POST', 
     url: 'http://localhost/extjs_training/Demo_WebService/Utility.asmx/GetGenres', 
     failure: function(response, options){ 
      Ext.get('my_id').dom.innerHTML = 'Load failed: ' + response.status; 
     } 
    }), 
    reader: new Ext.data.JsonReader({ 
     fields: ['id', 'genre_name'], 
     root: 'rows' 
    }), 
    listeners: { 
     loadexception: function (proxy, options, response, e) { 
      var result = response.responseText; 
      Ext.MessageBox.alert('Load failure', e + " ..... " + result); 
     } 
    } 
}); 

var loadSuccess = genres.load({ 
    callback: function(r, options, success){ 
     Ext.get('my_id').dom.innerHTML = 'Load status: success=' + success; 
    } 
}); 
+0

仔細檢查響應響應的服務器端代碼。你確定它不會散發無關的換行符,前導字符或尾隨字符嗎? – 2009-10-29 16:54:49

+0

多餘的空白會打破這個嗎?我怎麼能看到這是從ExtJS中打破了什麼? – 2009-10-29 16:59:55

+0

順便說一句 - 我正在使用ExtJS 2.2.1 – 2009-10-29 17:03:25

回答

4

是你上面包含什麼是實際上從調用返回,或者你正期待它應該像JSON的JSON和錯誤?你包含的字符串看起來很乾淨,但它看起來也是格式化的。我不確定是否允許「id」之後的空格:不過,這可能不是什麼大不了的事。

缺少的括號通常表示JSON中的某些內容是錯誤的。它可能是字符串之前/之後的一個額外字符。使用Firebug檢查你回來的東西,並確保它沒有任何額外的字符。

+0

從loadexception剪切和粘貼的JSON是ExtJS代碼 – 2009-10-29 17:00:52

+0

我已經刪除了「id」之後的空格:和「sort_order」:但仍然沒有運氣 – 2009-10-29 17:04:48

+0

叫掉狗 - 這是我的愚蠢。我的Web服務使用XML標籤包裝JSON - Ext.MessageBox.alert明確地隱藏了顯示內容。我會弄清楚什麼是錯的。感謝您的幫助 – 2009-10-29 17:07:49