繁体   English   中英

取消对.php脚本的Ajax请求

[英]Ajax request for .php script being cancelled

我正在尝试通过jquery中的ajax调用运行脚本; 但是,我没有任何结果,并且在chrome的网络视图中看到“(已取消)”状态。 仅当我请求.php脚本时才会发生这种情况,但例如,如果我仅请求.txt文件,则效果很好。 当我通过下面的test.html文件将URL更改为“ test.txt”时,我收到one\\ntwo\\nthree的警报。 我的网络服务器配置正确,文件权限都适当。 如果我从浏览器中请求.php脚本,它将按预期返回“ hello”。 以下是我的三个文件,为什么我取消了对test.php请求,却没有收到对test.txt请求?

的test.html

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <link rel="shortcut icon" href="/favicon.ico">
      <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
      <title>test</title>
   </head>
   <body>
      <button id="b">click</button>
      <script>
         $("#b").bind("click", function() {
            $.ajax({
               url: "test.php", // test.txt works fine
               type: "GET",
               cache: false,
               success: function(data) {
                  alert(data);
               }
            });
         });
      </script>
   </body>
</html>

的test.txt

one
two
three

test.php的

<?php
echo "hello";
?>

如前所述,如果我用浏览器请求test.php ,我将获得正确的“ hello”输出,从而可以正常执行。

-rwxr-xr-x 1 me me 22 Oct 1 02:49 test.php

(Canceled)令人沮丧。 如果您访问chrome://net-internals/#events ,则可以更详细地了解您的请求得到(canceled) Chrome可能会阻止您的请求,原因可能有多种,但您会在该URL上获得有关请求的更多信息。 如果仍然遇到问题,请编辑问题以包含此信息。

假设您正在使用WAMP或LAMP。

如果您的test.html文件不在Web服务器的www目录中,则Web服务器将阻止您访问test.php文件,因为它违反了相同的原始策略 这可以解释为什么在浏览器中访问test.php文件可以正常工作,以及为什么此test.html对test.php文件的请求失败。

可能并非如此简单,但这有时也会让我感到困惑。 特别是当我在桌面上放置index.html时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM