我定義一個提交按鈕與form_remote_tag,from_remote_tag發送的請求HTTP POST代替AJAX XMLHTTP請求
<div class="form_row">
<% form_remote_tag :url => {:controller => '/group', :action => 'addgroup'}, :update => 'activitypage' do %>
<%= submit_tag "Add!", :class => "submit" %>
<% end %>
我用提琴手並確認軌道代碼被譯成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(「highlight」);然而,當我點擊按鈕時,客戶端(IE 8)瀏覽器實際發送了一個http post請求(見下文)而不是XMLHTTPRequest,因此我的javascript響應被拒絕了。任何想法?提前致謝。
POST http://192.168.1.31:3000/group/addgroup HTTP/1.1
接受:圖像/ GIF,圖像/ JPEG,圖像/ PJPEG,圖像/ PJPEG,應用程序/ x-衝擊波閃光,應用/ vnd.ms-PowerPoint中,應用程序/ vnd.ms-Excel中,應用/ msword,application/x-ms-application,application/x-ms-xbap,application/vnd.ms-xpsdocument,application/xaml + xml,application/x-silverlight,/ Referer: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.30729) 內容類型:application/x-www-form-urlencoded Accept-Encoding:gzip,deflate Host:192.168.1.31:3000 Content-Length:84 Connection:Keep-Alive Pragma:no-cache Cookie:remember_me = 1; _session_id = 2ba880449df83115d15bab29b3c8ab30; authorization_token = 6419794165b8169cfff54053bddb40c9f0405782
from posting reque st上面,我們可以看到AJAX請求沒有發送'X-Requested-With'='XMLHttpRequest' – erwin 2010-08-21 01:28:33
表單是使用javascript提交還是實際發送POST? – 2010-08-21 03:17:23
該表單實際上是製作一個普通的HTTP帖子。 – erwin 2010-08-21 12:17:16