2012-03-01 2 views
0

У меня возникает следующая проблема, которую я, похоже, не могу решить, даже поиск в онлайн-форумах не дал полезных подсказок.Модельные записи данных JSON по запросу «destroy»

У меня есть следующий код, который определяет первую выбранную запись в Ext.Tree.Panel и отправляет запрос уничтожения. Однако вместо ожидаемой строки запроса имени/значения отправляется объект JSON.

var record = this.getClientUserTree().getSelectedRecord(); 

record.destroy({ 
    scope: this, 
    success: this.onDeleteUserSuccess, 
    failure: this.onDeleteUserFailure 
}); 

Я включаю код для соответствующей модели, а также код отправленной заявки.

Ext.define('Admin.model.Client', { 
    extend: 'Ext.data.Model', 
    fields: ['id', 'name', 'company', 'address', 'postal_code', 'city', 'country', 'phone', 'fax', 'note'], 

    proxy: { 
     type: 'ajax', 
     api: { 
      read: 'clientajax', 
      destroy: 'clientajax/delete' 
     }, 
     reader: { 
      type: 'json', 
      root: 'results' 
     } 
    } 
}); 

Добавлено строка в запросе:

{"id":"14","client":"5","username":"Testtest","firstName":"Genti","lastName":"Testing","role":"admin","superadmin":false} 

Может кто-нибудь сказать мне, что я делаю неправильно?

Спасибо за вашу помощь, заранее, Genti

+0

Почему это неправильно? Похоже, вы настроили читателя, который ожидает, что JSON и опубликованная строка будут выглядеть как строка JSON. – David

+0

Хм, я не уверен, понимаете ли вы, что я имел в виду. Может быть, мое объяснение не очень понятно. Читатель ожидает, что ответ AJAX-запроса будет JSON, что правильно, и так оно и должно быть. Однако, когда я выдаю запрос уничтожения, как указано выше, все данные записи POSTed как объект JSON для URL-адреса destroy-URL (clientajax/delete выше). Однако я ожидаю, что он будет опубликован как обычная строка запроса имени/значения (application/x-www-form-urlencoded), которая в этом случае не является. Я умираю, чтобы понять, где я, что я ошибаюсь. –

ответ

1

Ext.data.Model уничтожить метод использует метод уничтожения прокси.

К сожалению, я никогда не встречал прокси-сервер JSON или XML в API ExtJS4. Я всегда использовал свойство Ext.data.proxy.ServerextraParams, чтобы передать параметры значения строки на мой сервер, когда мне было абсолютно необходимо.

Вы также можете попробовать extending the proxy to accommodate what you need, но я никогда не пробовал.

С учетом сказанного имейте в виду, что существует множество библиотек для разбора JSON или XML, их интеграция на сервере не так уж сложно, вы должны также взглянуть на этот маршрут.

+0

Спасибо, после некоторого дальнейшего поиска, я закончил разбором размещенного JSON на стороне сервера. –