Javascript / AJAX / PHP错误:找不到元素,无法写入文件

时间:2015-05-14 18:53:02

标签: javascript php html ajax

我几天来一直在努力解决这个错误。搜索了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脚本能够写入文件就会出错。我只是决定在这篇文章中包含这个错误,因为我认为它可能与我的真正问题有关。

1 个答案:

答案 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>