我有两个名为client/orders和notary/orders的控制器。有click_me链接在“客户/订单”.When我点击链接,我应该传递ajax请求到notary/orders/pending_orders和reload the notary/orders/pending_orders页面。
这是我在client/order/new中的Ajax调用
<script>
jQuery.noConflict();
jQuery(document).ready(function(){
alert(9);
jQuery(".test_link").live("click", function(){
alert("am clicked");
jQuery.ajax({
url: "/notary/orders/pending_orders",
dataType: 'script',
type: "get",
data: {data:'hi'},
success:function(){
alert("success");
},
error:function(){
alert("failure");
}
});
})});
<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %>这是我用notary/orders/pending_orders编写的代码
if request.xhr?
respond_to do |format|
format.js { render :js=>'location.reload();',
:location => "notary/orders/pending_orders"}
end
end我想重新加载公证人/ client/orders/new /notary/orders/pending_orders_.But,我该怎么做?
发布于 2013-06-07 12:56:24
我猜链接<%= link_to "click me", "javascript:void(0);" , :class => "test_link" %>在client/orders/new中,您想要从client/orders/new更新页面notary/orders/pending_orders。
由于您是从client/orders/new发出请求,因此您的所有响应都将仅在client/orders/new中获得更新。
您似乎是在一个浏览器的client/orders/new中执行操作,并在另一个浏览器中监听页面notary/orders/pending_orders,以便在后端发生某些更改时更新通知。
为了在后端发生变化时自动更新页面(例如:在notary/orders/pending_orders中显示通知),我用来做的是,我将为此放置一个单独的侦听器,
<script type="text/javascript">
jQuery(document).ready(function(){
notificationListener();
});
function notificationListener(){
jQuery.ajax({
url: "/notary/orders/pending_orders",
type: "get",
data: {data:'yourdata'},
success:function(){
if(expected result){
//code to update browser view
}
else{
setTimeout(notificationListener(),10000)
}
},
error:function(){
//
}
});
}
</script>https://stackoverflow.com/questions/15829170
复制相似问题