Подтвердить что ты не робот

HTML5 PUT/DELETE методы, не работающие в Chrome?

Я пытаюсь выяснить, почему методы put/delete на сайте с поддержкой HTML5 не работают с Chrome. Из того, что я искал, похоже, что он работает некоторое время с Chrome, поэтому, с учетом сказанного, я просто ищу несколько указателей, чтобы сузить мою проблему. Возможно, я внедряю неправильную форму, возможно, мой doctype ошибочен, кто знает. Любая помощь приветствуется:)

Итак, код выглядит так:

<!DOCTYPE html> 
<html> 

 <head> 
        <title> 
            some_resource
        </title> 
    </head> 
    <body> 
  <div class="content"> 
  <form method="put" action="/some_resource"> 
   <div> 
    <input id="title" name="title" placeholder="The Resource Title" type="text" value="" autofocus /> 
   </div> 
   <div> 
    <textarea id="body" name="body" placeholder="The Resource Body" required></textarea> 
   </div> 
   <div> 
    <input id="submit" name="submit" type="submit" value="Submit" /> 
   </div> 
   <!-- Resource Settings --> 
   <ul> 
    <li> 
     <input id="listed" name="listed" type="checkbox" value="y" /> 
    </li> 
    <li> 
     <input id="template" name="template" type="text" value="resource.html" /> 
    </li> 
   </ul> 
  </form> 
  </div> 
    </body> 
</html>

Просто базовый тест для формы. Теперь я пробовал его на последнем Ubuntu Firefox (3.6.7), Opera (10.60 Internal) и последней бета-версии Chrome для Chrome от Google (5.0.375.99 бета). Ни один из них, похоже, не отправляет надлежащий метод put на сервер, когда я отправляю форму. Теперь я верю (не из каких-либо конкретных исследований), что Firefox еще не поддержал это, и что, как и много HTML5, он запланирован для следующей версии FF. Opera, о которой я не знаю, но я часто слышу об этом в ногу с Chrome. Так что.. да, я немного смущен.

При отправке формы они переходят к URL: http://localhost:8080/some_resource?title=t&body=b&submit=Submit&template=resource.html. Обратите внимание, что, как и ожидалось, POST работает просто отлично.

У кого-нибудь есть указатели на то, чтобы заставить метод put работать? Возможно, бета-версия для Linux просто не была обновлена ​​до версии сорта Windows (что-то, о чем я говорю, это то, о чем люди говорили, когда я видел PUT, работающую в Chrome), но я действительно надеюсь, что это проблема с моей реализацией.

Нужно ли серверам поддерживать PUT/DELETE? (В настоящее время я использую AppEngine Dev Server). Я не знаю.. надеюсь, у кого-то есть идеи:)

Благодаря любым ответам, Ли

Примечание. Другие функции HTML5, которые я тестировал до сих пор, работают. Например, в этой форме вы можете увидеть автофокус и необходимые атрибуты. Они работают как в Chrome.

Edit1: Чтобы уточнить, я понимаю, что поддержка для них является отрывочной. Как я уже ответил на ответ, мне не нужна текущая поддержка в других браузерах. В настоящее время Chrome - это то, что я хочу работать, и я ожидаю, что Firefox будет работать в предстоящем выпуске (я не знаю, я просто слышу, как они сильно нажимают HTML5), и я понятия не имею об Opera.

Все это просто для тестирования и изучения нового замечательного мира HTML5 (Web Workers, localStorage и т.д.) и CSS3. Я только забочусь о кровоточащих граничных браузерах, которые соответствуют технологии кровоточащего края:)

4b9b3361

Ответ 1

PUT и DELETE больше не поддерживаются методами тега <form>. Видеть отличия HTML5 от HTML4 (19 октября 2010 г.)

Ответ 2

В качестве монолитного стандарта нет "HTML5".

Некоторые из них такие же, как HTML4. Некоторые из них ратифицируют технически нестандартные функции, которые каждый браузер реализует, и все используют в течение многих лет. Некоторые из них - новые расширения, которые производители браузеров в основном согласны и находятся на разных этапах реализации. Например, autofocus.

Но тогда некоторые из них представляют собой продуманные вещи, которые могут измениться до его стандартизации, а некоторые из них - случайные бонусные функции, которые некоторые случайные люди в WHATWG считали приятными, но которые не показывают признаков поддержки из браузера авторы.

Существует меньше этой последней категории, чем раньше (ранние черновики были почти такими же полными архитектурно-астрономической нецензурности, как XHTML 2.0), но все же есть некоторые и в настоящее время расширенные формы подачи формы (PUT/DELETE методы и некоторые из действий, отличных от HTTP) находятся в этой категории. Каждый браузер в настоящее время игнорирует method="put", вместо этого возвращается значение attr по умолчанию get.

Возможно, однажды браузер выполнит это. Или, может быть, она будет вырезана из спецификации. HTML5 по-прежнему далеко до конца. Пока просто используйте POST, как и все остальные. Это не совсем чистая RESTfulness, но тогда это действительно не приносит вам ничего особенного.

<input ... autofocus /> 

Используйте синтаксисы HTML или XHTML, но не смешивайте их. autofocus="autofocus" для XHTML5 или для HTML5 потерять самозакрывающийся /.

<input id="submit" name="submit" type="submit" value="Submit" /> 

Лучше не называть кнопку, чтобы избежать столкновений с методом form.submit(). Во всяком случае вам не нужно name на кнопку отправки, если вам не нужно проверять на клик на одной конкретной кнопке. (И вам не нужно добавлять id ко всем вашим полям. Если вам не нужен таргетинг id для <label for или script, вы можете оставить их.)