[英]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.