jquery对话框ajax加载

时间:2010-09-08 06:56:22

标签: jquery ruby-on-rails ajax

我正在尝试通过ajax将表单加载到jquery对话框中,我注意到由于某种原因在firebug中,请求url包含soem bogus参数... like .._ = 1283928792723,这导致请求失败406不可接受。

有趣的是,对于其他路由(例如edit_user_path(current_user)),这不会发生,但它会在发布新动作和编辑动作时发生。怪异

http://localhost:3000/users/96/posts/new?_=1283928792723&name=fake

var dialogOpts = {
      modal: true,
      bgiframe: true,
      autoOpen: false,
      height: 500,
      width: 500,
      draggable: true,
      resizeable: true
    };

    $("#new_vt").dialog(dialogOpts);   //end dialog

    $('#showdialog').click(function() {
      $('#new_vt').load(
      "<%= new_user_post_path(current_user)%>",
      "name=fake",
      function() {
        $('#new_vt').dialog('open');
      }
    );
      return false;
    });


<a href="#" class="" id="showdialog">
  Show
</a>
<div class="" id="new_vt">

</div>

2 个答案:

答案 0 :(得分:0)

在您的示例中,看起来URI是在服务器端生成的,即

 new_user_post_path(current_user)

要测试这一点,请尝试输入硬编码的URI并运行脚本。

如果你这样做并且问题消失了,那么问题实际上是你的服务器端功能而不是jQuery。

如果您仍有问题,可以尝试传递这样的数据:

$('#showdialog').click(function() {
    $('#new_vt').load(
        "<%= new_user_post_path(current_user)%>",
        { name: "fake" },
        function() {
            $('#new_vt').dialog('open');
        }
    );
  return false;
});

这是在文档中的示例中传递附加数据的方式。

http://api.jquery.com/load/

答案 1 :(得分:0)

new_user_post_path(current_user)似乎返回带有查询字符串中附加的随机数的URL,以防止请求缓存。检查new_user_post_path功能,看看是否是这种情况。