Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2010, 22:36
Новичок на форуме
Отправить личное сообщение для Gant Посмотреть профиль Найти все сообщения от Gant
 
Регистрация: 04.08.2010
Сообщений: 5

Restful посылает POST вместо DELETE
добрый вечер, помогите разобраться почему при использовании restful он посылает метов POST, а не DELETE. вот код

function index(){

var reader = new Ext.data.JsonReader({
idProperty:'id',
fields: [
{ name: 'id', type: 'int' },
{ name: 'mark', type: 'string', allowBlank: false },
{ name: 'model', type: 'string' },
{ name: 'description', type: 'string' },
{ name: 'release_year', type: 'string' }
],
root:'data',
remoteGroup:false,
remoteSort: false
});

var writer = new Ext.data.JsonWriter({
encode: false
});

var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
});

var ds = new Ext.data.GroupingStore({
autoDestroy: true,
reader: reader,
writer: writer,
restful: true,
proxy : new Ext.data.HttpProxy({
url: '/admin/cars.json'

}),
sortInfo: { field: 'id', direction: 'ASC' },
groupField: 'mark',

});

var grid = new Ext.grid.GridPanel({
width: 860,
height: 400,
frame: false,
renderTo: 'grid',
autoScroll: true,
plugins: [editor],

ds: ds,

columns: [
new Ext.grid.RowNumberer(),
{ header: 'id', dataIndex: 'id', id: 'id', sortable: false, width: 30 },
{ header: 'Mark', dataIndex: 'mark', sortable: true, width: 100,
editor: new Ext.form.TextField({ allowBlank: false }) },
{ header: 'Model', dataIndex: 'model', sortable: true, width: 100,
editor: new Ext.form.TextField({ allowBlank: false }) },
{ header: 'Description', dataIndex: 'description',
editor: new Ext.form.TextField({ allowBlank: false }) },
{ header: 'release_year', dataIndex: 'release_year' }
],

view: new Ext.grid.GroupingView({
forceFit: true,
showGroupName: false,
enableNoGroups: false,
enableGroupingMenu: false,
hideGroupedColumn: false,
groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
}),

tbar: [{
text: 'Add Car',
handler : onAdd
}, '-', {
text: 'Delete',
iconCls: 'silk-delete',
handler: onDelete
}, '-'],
viewConfig: {
forceFit: true
}

});

/**
* onAdd
*/
function onAdd(btn, ev) {
var m = new grid.store.recordType({
mark : '',
model: '',
description : '',
release_year : (new Date()).clearTime()
});
editor.stopEditing();
grid.store.insert(0, m);
editor.startEditing(0);
}

/**
* onDelete
*/
function onDelete() {
var rec = grid.getSelectionModel().getSelected();
if (!rec) {
return false;
}
grid.store.remove(rec);
}

grid.store.load();

}

Ext.onReady(index());
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2010, 22:41
Новичок на форуме
Отправить личное сообщение для Gant Посмотреть профиль Найти все сообщения от Gant
 
Регистрация: 04.08.2010
Сообщений: 5

header:
Request URL:http://localhost:3000/admin/cars/11.json
Request Method:POST
Status Code:405 Method Not Allowed
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2010, 08:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

хм, я в общем-то не очень в теме, но зачем тут метод DELETE и где в коде указано, что нужно отправлять методом DELETE?
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2010, 13:05
Новичок на форуме
Отправить личное сообщение для Gant Посмотреть профиль Найти все сообщения от Gant
 
Регистрация: 04.08.2010
Сообщений: 5

а это RESTful, в котором есть PUT, DELETE, POST, GET.
т.е. extjs отправляет метод и json, метод определяет что нужно сделать с данными, а сами данные передаются в json
вот такой вот круговорот.

а в итоге, что делать? подскажите народ!
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2010, 13:15
Новичок на форуме
Отправить личное сообщение для Gant Посмотреть профиль Найти все сообщения от Gant
 
Регистрация: 04.08.2010
Сообщений: 5

или нужно делать обход через
Ext.Ajax.request({
headers : {
'X-HTTP-Method-Override' : 'DELETE'
},
method: 'POST',
url: '/admin/cars',
params: {
...
},
....
Ответить с цитированием
  #6 (permalink)  
Старый 05.08.2010, 21:11
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

А зачем нужен DELETE?
Вообще запросы делятся на
REQUEST,POST,GET,DELETE и ещё какие то.
Зачем POST и GET понятно, а другие зачем?
Ответить с цитированием
  #7 (permalink)  
Старый 05.08.2010, 22:08
Новичок на форуме
Отправить личное сообщение для Gant Посмотреть профиль Найти все сообщения от Gant
 
Регистрация: 04.08.2010
Сообщений: 5

PUT (изменить), DELETE (удалить)
Ответить с цитированием
  #8 (permalink)  
Старый 05.08.2010, 22:32
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

А почему нельзя просто посылать POST запрос?
"action=delete"

или
"action=update"
Ответить с цитированием
  #9 (permalink)  
Старый 05.08.2010, 23:33
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

сразу скажу, что пока что тут никто не отметился, кто имел дело с ExtJs... но можно поробовать разобраться. Повторю вопрос
Сообщение от x-yuri
и где в коде указано, что нужно отправлять методом DELETE?
кроме того, этот метод DELETE... это скажем так "сущность из ExtJs", а не из HTTP?

p.s. оформи код, плз, с отступами и с форматированием
Ответить с цитированием
  #10 (permalink)  
Старый 06.08.2010, 08:44
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от mycoding
А почему нельзя просто посылать POST запрос?
Потому что это RESTful.

Сообщение от x-yuri
кроме того, этот метод DELETE... это скажем так "сущность из ExtJs", а не из HTTP?
Это как раз из HTTP.

http://www.sencha.com/deploy/dev/exa...l/restful.html
Посмотрите в firebug'е, какие запросы отправляются при редактировании и удалении.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При отправке POST-запроса в заголовке к серверу вместо POST указывается OPTIONS VasiliyLuka AJAX и COMET 1 14.12.2009 14:57