我正在尝试通过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>
答案 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;
});
这是在文档中的示例中传递附加数据的方式。
答案 1 :(得分:0)
new_user_post_path(current_user)
似乎返回带有查询字符串中附加的随机数的URL,以防止请求缓存。检查new_user_post_path
功能,看看是否是这种情况。