簡體   English   中英

如何在RAILS上發出異步GET請求並僅獲取視圖表單(而不是整個正文和標頭)

[英]How to make asynchronous GET request on RAILS and only get view form (not whole body and headers)

我在rails應用程序上創建了一個簡單的異步jquery函數,因此可以在“ display” div上打印響應。 但是,當我向rails URL發出GET請求時,它會響應整個html:“ body”,“ head”和“ includes”,就好像它是瀏覽器上的新頁面一樣,因此,結果如下:

在按下按鈕之前:

<html>
  <head>
    <title>Myapp1</title>
  </head>
  <body>
      <button onclick="callPage()">Call</button>
      <div id="display"></div>
  </body>
<html>

在按下按鈕后,“ display” div充滿了我的響應:

<html>
      <head>
        <title>Myapp1</title>

      </head>
      <body>
          <button onclick="callPage()">Call</button>
          <div id="display">
             *<html>
               <head>
                 <title>Myapp1</title>
               </head>
               <body>
                 -----Content of page user/1 which is the only thing I want to get.------
               </body>
             <html>*
          </div>
      </body>

我在route.rb(RUBY ON RAILS)上通往用戶的路線正常

  resources :users
  #get 'welcome/index'
  match ':controller(/:action(/:id))', :via => :get

我的jQuery GET callPage(工作正常)

<script>
         function callPage()
    {   
        url="user/1";
        div="display";
        $.ajax({
            type: "GET",
            dataType: "text",
            url: url,
            success: function(msg){
                if(parseInt(msg)!=0)
                {
                    $("#"+div).html(msg);
                }
            }   
        }).setRequestHeader('X-CSRF-Token', AUTH_TOKEN);
    }
        </script> 

問題是如何防止RAILS將所有html標記全部打印出來(身體,頭部等),並使其僅打印我想要的控制器(在這種情況下為用戶)的視圖。 ¿它是某處的配置嗎?還是我想以某種方式調整它?

預先感謝您花費一百萬美元。

要僅顯示視圖,您必須將控制器操作更改為具有渲染布局:最后為false。 這將阻止呈現布局,僅將內容保留在視圖文件中。

例如:

class YourController < ApplicationController
  def show
    # bla bla
    render 'your_show_view_name', layout: false
  end
end

如果您希望所有控制器動作都具有此行為,則可以將其放在頂部

class YourController < ApplicationController
  layout false
  def show
    # bla bla
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM