Форма JQuery с method = "put" теперь не работает - PullRequest
2 голосов
/ 03 декабря 2011

У меня есть очень простая форма:

<form name="input" action="fly.cgi" method="put">
  Order Number:
  <input type="text" name="OrderNumber" /><br>
  <input type="submit" value="Submit" />
</form>

Я добавил jquery cdn CSS и js из http://jquerymobile.com/demos/1.0/docs/pages/page-template.html

Я прочитал http://jquerymobile.com/demos/1.0/docs/forms/forms-sample.html, но, похоже, jquery не поддерживает метод put.

Я нашел это http://homework.nwsnet.de/news/9132_put-and-delete-with-jquery, но не уверен, как это реализовать.

FYI. Файл fly.cfi не мой, и я не могу его изменить.

Вот полный код. Не повезло еще. Может я что то не так делаю. http://pastebin.com/1AVsvQLP

Ответы [ 2 ]

2 голосов
/ 03 декабря 2011

Как сказал @Munim, вы не можете отправить form через PUT, но вы можете "отправить" его, используя XMLHTTPRequest.

Так, например, это будет работать (при условии, что ваша форма имеет myform id):

$.ajax({
  type: "PUT",
  url: "fly.cgi",
  data: $('#myform').serialize(),
  success: function(data, textStatus, jqXHR) {
    alert('everything was OK');
  }
});

Обратите внимание, что по умолчанию при отправке form браузер загружает новое местоположение, таким образом вы PUT данные используете AJAX, поэтому перенаправления не будет.

0 голосов
/ 03 декабря 2011

HTML-формы (до HTML версии 4 и XHTML 1) поддерживают только GET и POST как методы HTTP-запроса.XHTML 2.0 будет поддерживать GET, POST, PUT и DELETE для форм.

Обходной путь для этого для методов через POST, используя скрытое поле формы, которое считывается сервером и отправляется соответствующим образом.

...