我正在编写一个小脚本来捕获链接点击,并将链接的URL保存到数据库表中,以便跟踪在特定页面上每个链接被点击了多少次。链接是指向外部站点的。
因此,我在JavaScript函数中捕获了click事件,使用jQuery发布到将数据保存在MySQL中的PHP页面,然后JavaScript函数将用户重定向到他们单击的链接的URL。
我遇到的问题是,由于重定向的原因,该帖子似乎从未完成。我已经通过在post回调内部调用redirect来解决此问题,但是这增加了几秒钟的延迟,因为直到发布完成后才被调用。我正在寻找一种仅发布数据并立即重定向用户的方法,而无论发布成功与否。
这是具有解决方法的当前代码。它工作正常,但增加了延迟:
function trackClicks(event)
{
var clicked = $(this).attr('href');
$.post
(
$('#track-click-post-url').attr('value'),
{
action: 'track_landing_page_clicks',
clicked_url: clicked,
nonce: $('#track-click-nonce').attr('value')
},
function( response )
{
window.location = clicked;
}
);
event.preventDefault();
}
这就是我想做的,但是当我尝试时,它永远不会完成:
function trackClicks(event)
{
var clicked = $(this).attr('href');
$.post
(
$('#track-click-post-url').attr('value'),
{
action: 'track_landing_page_clicks',
clicked_url: clicked,
nonce: $('#track-click-nonce').attr('value')
}
);
window.location = clicked;
event.preventDefault();
}
jQuery不提供您要查找的内容的回调。以下是可用的就绪状态:
Value State Description
0 UNSENT open()has not been called yet.
1 OPENED send()has not been called yet.
2 HEADERS_RECEIVED send() has been called, and headers and status are available.
3 LOADING Downloading; responseText holds partial data.
4 DONE The operation is complete.
您正在寻找readystate 2,因为这是您最早知道服务器收到消息的事实。
这应该可以帮助您:
var xhr = new XMLHttpRequest();
xhr.open("POST", clicked);
xhr.onreadystatechange = function() {
if (xhr.readyState >= 2) window.location = clicked;
};
xhr.send($('#track-click-post-url').attr('value'));
https://developer.mozilla.org/zh-
CN/XMLHttpRequest
进行进一步阅读。
问题内容: 我正在使用访问管理(AM)服务器创建社交登录页面。当用户单击登录按钮时,我将对AM服务器进行一次http调用。AM服务器生成带有身份验证cookie的HTTP 301重定向响应到社交登录页面。我需要以某种方式遵循此重定向响应,并在Web浏览器中显示新内容。 用户界面:ReactJS 请求: 响应 反应代码: 如何跟踪重定向响应并在Web浏览器中显示新内容? 问题答案: Request.
问题内容: 在Django views.py文件中处理POST请求时,有时需要将其重定向到另一个URL。我重定向到的网址是由同一Django views.py文件中的另一个函数处理的。有办法做到这一点并维护原始POST数据吗? 更新:我为什么要这样做的更多解释。我有两个Web应用程序(我们称它们为AppA和AppB),它们接受用户在文本字段中输入的数据。当用户单击提交时,将处理数据并显示详细结果。
问题内容: 我有一个网站,所有请求都通过(无提示)被无提示地重定向到,然后PHP用于显示正确的页面(通过解析)。 我想知道是否也可以将POST数据提交到假地址? 我目前有这样的表格… 我的规则是 我的支票工作正常。 但是,这似乎删除了应该发送给它的所有POST数据。 有没有办法保留帖子数据?我不想使用GET,因为它不能发送太多信息,尽管使用简单的查询表可能不会出现问题。 这是我重定向到的 问题答案
我已经使用Apache301重定向到“重定向”实现了SEO URL。cfm’位于网站的根目录中,处理所有URL构建和内容交付。 在301重定向期间,Post数据丢失。 到目前为止找不到解决方案,我们尝试将post方法排除在重写之外-最坏的情况是,我们可以将旧类型的URL用于post方法。 有什么可以做的吗? 谢啦
问题内容: 我有一个多维数组,其中包含426个较小的数组,其中还包含4个属性。.下面是426个数组之一的示例… 我正在将带有jquery的ajax函数的数组发布到php文件,这会将它们添加到数据库中。我的问题是,数组在发布到php文件时似乎被砍掉了。实际上只有大约一半的数组到达了php文件… 这使我相信通过ajax发布时可能存在文件大小限制。但是,我的数组大小似乎相对较小。 我正在WAMP上运行我
问题内容: 我在页面上发生了一个jQuery Ajax请求。在PHP方面,我正在检查会话是否处于活动状态并正在执行某些操作。如果会话不活跃,我想将用户重定向到php中的另一个页面(header redirect)。我该怎么做。 我知道如何在javascript中实现它(即,如果session_fail然后更改window.location,但是我可以在php / cakephp中做些什么 问题答案