从Javascript在另一台服务器上调用PHP,并等待它完成

时间:2016-05-10 09:53:01

标签: php html javascript

我的服务器上有一个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脚本中的任何信息,我只需要它来运行。

谢谢。

2 个答案:

答案 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变体。