Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2014, 20:07
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Не могу отправить форму методом PUT
Отправляю форму внутри которой есть input с name="_method" value="PUT", у самой формы установлен method="POST" и target на iframe. Но сервер этот запрос воспринимает как POST. Попробовал отправить с помошью ангуляровского $http.put - все ок, на сервер приходит PUT. В чем может быть проблема? Вот код отправляющий запрос:
function(url, form)
{
	if (!ajax.frame)
	{
		ajax.frame = document.createElement('iframe');
			
		ajax.frame.name = 'ajaxMultipartFrame';
			
		ajax.frame.setAttribute('hidden', '');
			
		document.body.appendChild(ajax.frame);
	}
		
	ajax.input = document.querySelector('input[_method]');
		
	if (!ajax.input)
		ajax.input = document.createElement('input');
		
	ajax.input.setAttribute('hidden', '');
	ajax.input.setAttribute('name', '_method');
	ajax.input.setAttribute('value', 'PUT');
		
	form.appendChild(ajax.input);
		
	form.enctype = 'multipart/form-data';
	form.target = 'ajaxMultipartFrame';
	form.method = 'POST';
	form.action = url;
		
	form.submit();
}
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2014, 08:04
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Цитата:
у самой формы установлен method="POST"
Цитата:
Но сервер этот запрос воспринимает как POST.
Че правдо??? Как неожиданно!

Возможно чтобы отправить форму методом Put надо указать именно put вместо post?
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2014, 11:23
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Может не нужно советовать то, чего не знаешь ? http://htmlbook.ru/html/form/method
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2014, 12:33
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Методом put надо отвправлять через ajax, то что ты указал value=put червер не интересует, можешь его себе оставить. Нужно именно тип запроса установить в put
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2014, 12:52
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Что ты имеешь введу под ajax? xhr ? Отправка запроса через скрытый фрейм это тоже ajax. Браузеры не поддерживают метод put, если в форме указать method="put" то на сервер прийдет get. На сервере у меня nodejs, и как пишут в докумнтации, для того что бы он понимал методы PUT и DELETE - в форму нужно вставить input с name="_method" value="PUT"
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2014, 13:22
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Проблема решена, на сервере был отключен модуль читающий _method
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отправить форму NeoN Общие вопросы Javascript 3 20.03.2013 08:44
можно как то отправить содержимое нужного дива в другую форму а потом расспечатьтать sarik Общие вопросы Javascript 1 04.03.2013 16:08
Как отправить форму после preventDefault()? Rooner jQuery 4 09.10.2012 16:58
Как отправить форму без аякса? FRIE jQuery 1 14.08.2012 11:39
Как отправить форму сразу на 2 адреса? Vlaimir Events/DOM/Window 4 26.10.2009 00:23