[英]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
请求?
<!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>
one
two
three
<?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.