pjax提交表单URL重定向
pjax submit form URL redirection
PJAX的文档指出Github在提交Gist表单时使用
$.pjax.submit()
。Github很好地实现了ajax表单提交的一个期望功能,即URL从表单的action
重定向到新创建的URL(在这种情况下,一个包含新服务器端创建的Gist ID的URL(。
例如,从这个:
https://gist.github.com/gists // form action
到此:
https://gist.github.com/tim-peterson/5019589 //assume this ID is generated server side
我已经在我的网站上实现了类似的功能(即,页面本身重定向到https://gist.github.com/tim-peterson/5019589)但我无法重定向URL(它保持为https://gist.github.com/gists)。
这完全是服务器端的问题(设置头?(还是pjax中缺少什么?我使用的是我今天下载的pjax的一个版本,所以不可能是我使用了一个有缺陷的pjaxs版本。
您找到解决方案了吗?我也有类似的问题。
基本上,您需要在响应标头中设置X-PJAX-URL属性。它的值应该与请求URL相同。
在拉拉威尔,我是这样做的。。。
App::after(function($request, $response)
{
$response->headers->set('X-PJAX-URL', $request->getRequestUri());
});
使用$.pjax.submit((可能有一种更优雅/正确的方法来实现这一点,但这是我一直在使用的解决方案,没有任何问题。我在提交之前序列化表单输入,然后将它们POST到我的服务器。然后检查服务器的回复,以确保在调用PJAX继续之前不需要阻止用户继续。
$("#save").click(function(e) {
e.preventDefault();
dataString = $("#form").serialize();
$.ajax({
type: "POST",
url: $("#form").attr("action"),
data: dataString,
dataType: "json",
success: function(data)
{
// Handle the server response (display errors if necessary)
$.pjax({
timeout: 2000,
url: data.url,
container: '#main-content'
});
}
});
});
如果响应HTML不包含初始PJAX容器,就会发生这种情况
相关文章:
- safari扩展中的重定向url
- 将重定向URL链接添加到JS函数
- 使用phonegap重定向URL
- 在php中htaccess重定向url后,无法加载css和js
- 如何在重定向 URL 的标头中拦截和获取位置
- 如何使用javascript查询重定向url
- 如何使用javascript获取重定向url
- 重定向(URl)提供控制器视图 URI模式
- 带有Authorization标头的JavaScript重定向URL
- 从数组随机重定向URL
- 在重定向URL上使用HubSpot表单数据
- 如何在 Javascript 或 jQuery 中重定向 URL
- 快速发送文件和重定向 URL
- 使用javascript基于登录用户重定向URL链接
- 如何使用javascript完全重定向URL
- JavaScript var 值,重定向 URL 为空
- 如何在WordPress中即时重定向URL
- 在选项卡更改时重定向 URL
- 已更新:从另一个页面重定向 url 传递参数
- 从页面文档文本重定向 URL