2

我正在尝试通过 jquery 中的 ajax 调用运行脚本;但是,我没有得到任何结果,并且在 chrome 的网络视图中看到“(已取消)”状态。这只发生在我请求.php脚本时,但如果我只请求一个.txt文件,它就可以正常工作;当我在下面的文件one\ntwo\nthree中将 url 更改为“test.txt”时,我会收到警报。test.html我的网络服务器配置正确,文件权限都合适。如果我从浏览器请求我的.php脚本,它会按预期返回“hello”。以下是我的三个文件,为什么我的请求被取消test.php但没有test.txt

测试.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>

测试.txt

one
two
three

测试.php

<?php
echo "hello";
?>

如前所述,如果我test.php使用浏览器请求,我会得到正确的“hello”输出,因此它执行得很好。

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

4

2 回答 2

2

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

于 2013-09-30T17:44:33.330 回答
1

假设您使用的是 WAMP 或 LAMP。

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

这可能不是那么简单,但这也是偶尔让我感动的事情。尤其是当我在桌面上有一个 index.html 时。

于 2013-09-30T17:55:31.313 回答