你如何通过ajax调用平面文件?

时间:2013-07-03 17:06:27

标签: javascript ajax

我需要对txt文件执行ajax调用并每隔5分钟读取一次。我有以下代码来执行PHP脚本:

function webserver_cpu_Data() {
            $.ajax({
                url: 'shell.php', 
                datatype: 'json',
                success: function(data) {
                    seriesOptions=data;
                    createChart();
            setTimeout(webserver_cpu_Data, 600000); 
                },
                cache: false    
                });
        }

有没有办法读取像txt.file这样的文件和ajax调用?

我已经创建了这个函数来调用php脚本来显示值。

function myAjax() {
       var seriesOptions = [],
        yAxisOptions = [],
        colors = Highcharts.getOptions().colors;
    $.ajax({ url: 'echo_file.php', success: function(data) {
    seriesOptions=data;
    createChart();
    }
    });
    }

我这样做是为了每5分钟运行一次上述功能:

setInterval(function() { myAjax(); }, 5 * 60 * 1000);   

我没有得到任何价值。然而这是有效的。我的想法是将下面的内容变成ajax调用。

var seriesOptions = [],
        yAxisOptions = [],

        colors = Highcharts.getOptions().colors;
        $.getJSON('test.txt',   function(data) {

            seriesOptions= data;
            createChart();  
        });

2 个答案:

答案 0 :(得分:2)

您正在寻找的是'数据类型'。将其更改为“文本”,它应该顺利运行。

编辑:您请求了一个txt文件,所以我给了你一个,但JSON是一个完全不同的故事。

如果JSON无效,jQuery有这种可怕的行为来默默地取消JSON ajax调用,我确信已经花费了数千小时浪费时间看除JSON响应,这至少是我的问题两次,很可能也是你的。

您需要做的是验证您从php获得的JSON,如果您可以获取纯文本数据,则可以将其粘贴到jslint

答案 1 :(得分:1)

如果您的文件是JSON编码的,则以下内容将起作用(例如,它在PHP文件中使用echo(json_encode($array))返回给客户端:

$.ajax({ url: 'php_file_returning_json.php', success: function(res) {
    console.log(res);
});

这仅在content-type设置为JSON时才有效。 PHP文件将需要此文件顶部的标题:

header("content-type: application/json");

否则,您需要JSON.parse(res)成功函数中的数据。

要每五分钟拨打一次,这就像下面这样简单:

setInterval(function() { myAjaxFunction(); }, 5 * 60 * 1000);