Использование rails 4.0.0
, ruby 2.0.0p247
, jquery-rails 3.1.0
и jquery 1.10
.
Работает в FF
, IE10+
и Chrome
. Ошибка в IE8
(не протестировал IE9
).
Я пытаюсь использовать ajax data-remote
чтобы вызвать щелчок по ссылке, чтобы обновить статус человека. Но в IE8
я получаю неопределенную JQHXR
: JQHXR
аргумент. Я не уверен, как подойти к этому.
Ошибка возникает после строки 157 jquery_ujs.js
154 // Only pass url to 'ajax' options if not blank
155 if (url) { options.url = url; }
156
157 var jqxhr = rails.ajax(options);
158 element.trigger('ajax:send', jqxhr);
159 return jqxhr;
Отладка значений в IE8 (после строки 157, т.е. стрелка в строке 158)
[-] options {...} Object
crossDomain null Variant
data null Variant
dataType "json" String
type "patch" String
url "/persons/status/1/stop" String
[-] jqxhr {...} Object
readyState 0 Number
responseJSON undefined Undefined
status 0 Number
statusText "Error: Invalid argument." String
Мой код:
<%= link_to status, status_path(person_id: p.id, status: status), remote: true, 'data-method'=> 'patch' %>
Почему мой вызов ajax не работает и что недействительно?
Я предполагаю, что это связано с отсутствием поддержки метода PATCH IE 8. Подробнее в этой статье - ilyai.github.io/rest/http/2013/06/11/http-method-support.html - ilyai 13 часов назад
Пришлось использовать PUT вместо PATCH.