如果服务器响应特定内容,则运行 (JS) 函数


Run (JS) function if server responded something specific

在我的一个页面上,我有"跟踪.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。