from_remote_tag отправил запрос http пост вместо ajax XMLHTTP запрос - PullRequest
0 голосов
/ 18 августа 2010

Я определяю кнопку отправки с form_remote_tag,

  <div class="form_row">
<% form_remote_tag :url => {:controller => '/group', :action => 'addgroup'}, :update => 'activitypage' do %>
 <%= submit_tag "Add!", :class => "submit" %>
<% end %>

Я использовал fiddler и подтверждаю, что код rails был переведен в запрос ajax,

u003Cform action=\"/group/addgroup\" method=\"post\" onsubmit=\"new Ajax.Request('/group/addgroup', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\"\u003E\n     \u003Cinput class=\"submit\" name=\"commit\" type=\"submit\" value=\"Add!\" /\u003E\n  \u003C/form\u003E\n  \u003C/div\u003E\n\u003C/fieldset\u003E  \n\u003C/form\u003E\n");
.

$ ( "activitypage") VisualEffect ( "изюминка");

однако, когда я нажал кнопку, клиентский браузер (IE 8) фактически отправил запрос http post (см. Ниже) вместо XMLHTTPRequest, поэтому мой ответ на javascript был отклонен. Любая идея? Заранее спасибо.

POST http://192.168.1.31:3000/group/addgroup HTTP/1.1

Принять: image / gif, image / jpeg, image / pjpeg, image / pjpeg, application / x-shockwave-flash, application / vnd.ms-powerpoint, application / vnd.ms-excel, application / msword, application / x-ms-application, application / x-ms-xbap, application / vnd.ms-xpsdocument, application / xaml + xml, application / x-silverlight, / Рефере: http://192.168.1.31:3000/mywebapp Accept-Language: en-us Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6.5; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5 0,30729) Тип контента: application / x-www-form-urlencoded Accept-Encoding: gzip, выкачать Host: 192.168.1.31:3000 Длина контента: 84 Подключение: Keep-Alive Прагма: без кеша Cookie: Remember_me = 1; _session_id = 2ba880449df83115d15bab29b3c8ab30; authorization_token = 6419794165b8169cfff54053bddb40c9f0405782

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

когда сервер отправил обратно страницу javascript для замены страницы ajax, в браузере появилось окно для загрузки файла из-за непринятого формата страницы.Я ожидал, что кнопка отправки отправит запрос AJAX с принятием страницы JavaScript.Но это не так.Почему?

ниже - ответ от сервера после получения запроса на отправку?

HTTP / 1.1 200 OK Соединение: закрыть Дата: среда, 18 августа 2010 02:26:31 GMT Set-Cookie: _session_id = 2ba880449df83115d15bab29b3c8ab30;path = / Status: 200 OK X-Runtime: 0.71081 ETag: "c4825b6e144b125ce655259083a12eff" Cache-Control: private, max-age = 0, must-revalidate Сервер: Mongrel 1.1.5 Content-Type: text / javascript;charset = utf-8 Content-Length: 17195

try {Element.update ("Activitypage", "\ u003Ch1 \ u003EGroup \ u003C / h1 \ u003E \ n \ u003Cscript src = \" / javascripts / prototype.js? 1258680672 \ "type = \" text / javascript \ "\ u003E \ u003C / script \ u003E \ n \ u003Cscript src = \" / javascripts / effect.js? 1258680672 \ "type = \" text / javascript \ "\u003E \ u003C / script \ u003E \ n \ u003Cscript src = \ "/ javascripts / dragdrop.js? 1258680672 \" type = \ "text / javascript \" \ u003E \ u003C / script \ u003E \ n \ u003Cscript src = \ "/javascripts/controls.js? 1258680672 \ "type = \" text / javascript \ "\ u003E \ u003C / script \ u003E \ n \ u003Cscript src = \" / javascripts / application.js? 1258680672 \ "type = \" text/ javascript \ "\ u003E \ u003C / script \ u003E \ n \ u003Cbr \ u003E \ n \ n \ u003Ctable border = \" 0 \ "....

0 голосов
/ 18 августа 2010

Кто отклонил ответ?

Ваш браузер не должен отправлять запрос XMLHTTPRequest в качестве фактического метода HTTP. Ваш выбор ограничен GET и POST (плюс HEAD, PUT, DELETE).

Запрос AJAX должен на самом деле установить заголовок, который затем получает проверку:

'X-Requested-With' = 'XMLHttpRequest'

Фактический используемый метод HTTP будет GET или POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...