Javascript 使用$.ajax调用php脚本从服务器上的文本文件读取数据

Javascript 使用$.ajax调用php脚本从服务器上的文本文件读取数据,javascript,php,jquery,Javascript,Php,Jquery,这是我第一次在这个网站上发帖。我已经查阅了之前与这个主题相关的几篇帖子,但没有找到任何适合我的。我尝试使用javascript和jquery$.ajax在服务器上调用php脚本并返回文件内容。到目前为止,我没有得到任何数据回来。我可以使用$.ajax更新服务器上的.txt文件,但需要一些帮助来找出检索该文件时的错误。我没有看到php脚本生成任何错误,events.txt文件也不是空的。vb.net和c是我的母语,所以这对我来说有点陌生 我的js是: function readText() {

这是我第一次在这个网站上发帖。我已经查阅了之前与这个主题相关的几篇帖子,但没有找到任何适合我的。我尝试使用javascript和jquery$.ajax在服务器上调用php脚本并返回文件内容。到目前为止,我没有得到任何数据回来。我可以使用$.ajax更新服务器上的.txt文件,但需要一些帮助来找出检索该文件时的错误。我没有看到php脚本生成任何错误,events.txt文件也不是空的。vb.net和c是我的母语,所以这对我来说有点陌生

我的js是:

function readText() {
        var url = "readdata.php";
        var result = "";
        $.ajax({
            url: url,
            type: 'get',
            dataType: 'text',
            success: function (data) {
                result = data;
                alert(result);
            },
            async: false
        });
    }
我的readdata.php脚本是:

<? 
$file=fopen("events.txt","r");
$read=fread($file,filesize("events.txt"));
fclose($file); 
echo $read;
?>

欢迎任何建议。谢谢

美元.ajax中的类型应使用大写字母

type: 'GET'

function readText() {
        var url = "readdata.php";
        var result = "";
        $.ajax({
            url: url,
            type: 'GET',
            dataType: 'text',
            success: function (data) {
                result = data;
                console.info(result);
            },
            async: false
        });
    }
在将error:function{}添加到ajax调用之后,我能够解决这个问题

事实证明,问题的一部分是服务器上的权限无法从服务器上的文件权限中读取文件


另外,我尝试在本地运行,但我的本地计算机上没有安装php。

我觉得一切正常。您可以通过将readdata.php的地址放在浏览器的地址栏中来测试服务器是否存在问题,并查看它是否显示页面。您可以在$.ajax调用之前放置一个console.log调用,以检查脚本是否达到了这个程度。嗯,当我点击.php文件的url时,会显示events.txt文件的内容,这是我所期望的。也许我错过了一些关于如何找回价值的东西。我希望文件内容在result参数中,但当我在chrome中调试时,它仍然是一个空字符串。我还将另一个答案中提到的类型从“get”改为“get”,但这似乎也没有什么区别。我测试了你的代码,它对我有效。我用readText来称呼它;,仅更改代码中的url。我还可以建议您更新jQuery的版本,提供更多关于您正在做什么的信息。有些地方出了问题,所以通常会有一个错误的假设。发布代码中的url真的是您正在使用的url吗?您是否尝试在整个函数中放置console.log以确定正在运行的内容以及变量处于的状态。页面是否会弹出警报?url是相同的,我也尝试过完全限定它。当我调用readText方法时,我不会得到弹出的警报。我有一个非常类似的方法,它会为该方法弹出一个POST,成功函数中的警报。我将尝试添加到console.log中,看看我是否可以知道hiccup在哪里,并更新jquery,确保我有最新版本。当您测试此功能时,是否收到警报弹出窗口?上下文:这适用于可更新的事件日历,事件被添加、写入文本文件,当加载页面时,它从文件中读取数据以填充事件。不正确,可以在jQuery源代码中看到类型已转换为大写,因此设置选项不区分大小写。我还尝试将ajax调用放在一个try-catch中,以查看是否抛出了任何错误,我没有得到任何异常。如果我清空服务器上的events.txt文件并使其为空,我会从readdata.php脚本中得到null错误异常,这也是预期的。@Billy Moon在将error:function{}添加到ajax调用后,我能够解决此问题。目前我有它的工作。仅供参考;问题的一部分是服务器上的权限,而我的本地计算机上没有安装php。