php - Ajax 和 PHP - 为什么代码可以在本地服务器上运行,但不能在主机上运行?
问题描述
我应该怎么做才能在主机上进行 ajax 工作?我尝试制作进度条。我想"echo <p>$i</p>"
在迭代完成时立即显示。在本地服务器上"echo <p>$i</p>"
工作并在迭代完成后立即显示 $i 。托管"echo <p>$i</p>"
工作并仅在脚本执行后才显示 $i 。代码在本地服务器上工作,但不在主机上工作。我认为在托管或请求标头上设置 php 存在问题。我试图找到这个问题的解决方案,但没有找到。请帮帮我!
PHP & HTML 代码:
<?php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$i = 0;
echo "<p>$i</p>";
flush();
ob_flush();
while ($i < 5) {
$i++;
echo "<p>$i</p>";
flush();
ob_flush();
sleep(1);
}
exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Output PHP Script Progress via Ajax - Basic Example</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
</head>
<body>
<div class="container">
<h2>Output PHP Script Progress via Ajax - Basic Example</h2>
<p>Cick button below to run script.</p>
<form class="" role="form" action="/basic.php" method="post">
<button type="submit" class="btn btn-primary">Execute Long PHP Script</button>
</form>
<div id="progress"></div>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script type="text/javascript" src="./dist/script-basic.min.js"></script>
</body>
</html>
带有 Ajax 的 JS 代码:
$(document).ready(function() {
$("form").submit(function(e) {
$.ajax({
url: $(this).attr("action"),
xhrFields: {
onprogress: function(e) {
console.log(e.target.responseText), $("#progress").html(e.target.responseText)
}
},
success: function(e) {
console.log(e), $("#progress").html(e + "<h1>done!</h1>")
}
}), e.preventDefault()
})
});
解决方案
推荐阅读
- java - 添加驱动程序选项禁用日食
- python - 如何使用 Jupyter 笔记本从 Watson Studio 连接到 MongoDB
- javascript - Javascript search() 函数在字符类中给出范围乱序
- sql-server - 尝试使用 sql server 2016 获取计数结果集的平均值
- scala - 如何在 Databricks 中运行 Spark-Scala 单元测试笔记本?
- python - Python:使用带有 .ini 的脚本,然后使用 .sh 调用外部程序
- flutter - 颤振自动路由 | 如何使用 BlocProvider 包装路由?
- java - 如何每'x'秒将一行写入文件末尾
- excel - Excel Vba 运行表
- split - 雪花将字符串拆分为列