在我的一个页面上,我有"跟踪.php"向另一台服务器发出请求,如果在Firebug Net面板中成功跟踪,我会看到响应trackingFinished();
有没有一种简单的方法(内置函数)来完成这样的事情:
If ("tracking.php" responded "trackingFinished();") { *redirect*... }
Javascript?.PHP?什么?
问题是,这种"跟踪.php"还会创建浏览器和闪存cookie(然后在创建时用trackingdone()响应)。我有一个JS做了这样的事情:
If ("MyCookie" is created) { *redirect*... }
它有效,但是如果您以前在浏览器中有 MyCookie,它只是在"跟踪.php"有时间创建新 cookie 之前重定向,因此旧 cookie 在重定向之前不会被覆盖(我正在尝试完成)......
我想到的解决方案是在跟踪完成()后重定向; 得到回应...
我认为 javascript 中更好的形式是从一个页面到另一个页面发出请求,而不离开第一个页面是使用 ajax 方法,而这个 jQuery 使它变得如此简单,你只需要使用 ajax 函数,并传递一点参数:
$.post(url, {parameter1: parameter1value, param2: param2value})
您可以连接一些操作:
$.post().done(function(){}).fail(function(){})
并且不是ajax,您可以使用更简单的$.post,并使用完成和失败方法来评估所接收信息的成功
如上所述,AJAX 是在这样的页面之间进行通信的最佳方式。下面是对 track.php 页面发出 AJAX 请求的示例。它使用成功函数来查看 track.php 是否返回 'trackingDone();'。如果是这样,那么它会重定向页面"重定向.php":
$.ajax({
url: "track.php",
dataType: "text",
success: function(data){
if(data === 'trackingFinished();'){
document.location = 'redirect.php';
}
}
});
该示例使用 JQuery。