我几天来一直在努力解决这个错误。搜索了stackoverflow和其他网络资源,但到目前为止还没有运气。
代码非常简单。我有一个调用saveFile.php的test.html文件。但是,我有两个问题。 1)在Firefox中,我不断发现"没有找到任何元素"错误。不要在Chrome中看到此问题。 2)即使saveFile.php似乎被调用,它也不会写入文件。这两种浏览器都是这种情况,我真的需要能够写入文件。
这是test.html文件:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>IIDS: Basic Boilerplate</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
hello world
<script src="../components/jquery/jquery.js"></script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "saveFile.php",
//url: "http://localhost/~usesr1/mywork/saveFile.php",
//dataType: "json",
data: 'test',
success:function(text) {
console.log(text);
},
error: function(xhr, status) {
alert("unable to save data");
},
});
</script>
</body>
</html>
这是saveFile.php:
<?php
$tdata = "hello world this is a test";
$testf = fopen('hello123', 'w+');
fwrite($testf, $tdata);
fclose($testf);
echo "yes";
// header("Content-Type: text/plain"); Got this from another stackoverflow question, but this didn't fix the problem.
exit();
?>
这两个文件都在〜/ public_html下的同一目录中。我给了目录777的权限。这是一台运行Ubuntu 14.04的机器。
在saveFile.php中,试过&#34; GET&#34;而不是&#34; POST&#34;但又没有运气了。
我被困住了,任何帮助都会非常感激。感谢。
编辑:此问题与评论中链接的问题不重复。主要的区别是我无法让我的php写入文件。我不一定关心&#34;没有找到元素&#34;只要php脚本能够写入文件就会出错。我只是决定在这篇文章中包含这个错误,因为我认为它可能与我的真正问题有关。
答案 0 :(得分:1)
您必须指定何时发生AJAX事件。
由于您希望在打开页面时触发它,因此添加$(document).ready函数,它将在文档加载完毕后触发。或者您可以将其绑定到例如按钮的.click()
事件。
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
url: "saveFile.php",
data: 'test',
success:function(text) {
console.log(text);
},
error: function(xhr, status) {
alert("unable to save data");
},
});
});
</script>