我的服务器上有一个PHP脚本,需要在纯HTML页面中使用Javascript从我的客户端网站运行。运行脚本后,HTML页面将重定向。问题是有时脚本在重定向发生之前不会运行。
这是我正在使用的代码......
$.ajax({
async: false,
type: 'GET',
url: 'the_URL_of_the_PHP_on_my_server.php',
success: function(data) {
}
});
window.location="the_URL_for_the_redirect";
我服务器上的PHP脚本用于跟踪匹配/销售等。有没有办法可以强制页面在页面重定向之前等待脚本完成。
HTML页面和PHP页面位于不同的服务器上。此外,HTML页面正在许多不同的网站上使用,因此我无法授予他们访问我的服务器的所有权限。我不确定这是否会导致问题。
我不需要PHP脚本中的任何信息,我只需要它来运行。
谢谢。
答案 0 :(得分:4)
成功函数会在您收到回复时运行(除非是错误,在这种情况下,您尚未定义的错误函数会运行)。
如果您希望在收到回复后运行某些代码,请在发送请求的代码之后立即将其放入这些函数中。
那就是说:Ajax的目的是在没有离开页面的情况下与服务器交谈。如果您在收到回复后立即转到其他页面,则不要使用Ajax。使用常规链接或表单提交,然后将HTTP重定向作为响应。
答案 1 :(得分:0)
这种情况很正常。
因为$.ajax
是异步的并且不会等到成功方法
将您的代码更改为
$.ajax({
async: false,
type: 'GET',
url: 'the_URL_of_the_PHP_on_my_server.php',
complete: function(data) {
window.location="the_URL_for_the_redirect";
}
});
<强>已更新强>
改变功能成功完成 差异是=&gt; 完整将被称为不重要的事情发生在请求
更新2
通过html重定向来考虑@Quentin变体。