从远程服务器加载.txt

时间:2013-09-06 17:06:01

标签: javascript jquery jsonp

我正在尝试从另一台服务器上运行的javascript中获取存储在我的某个服务器中的.txt文件的内容。

我正在使用:

$.ajax({  
    url: "http://example.com/file.txt",  
    dataType: "jsonp",  
    success: function(data) { remoteFile = data; }  
});  

但是我在远程Uncaught SyntaxError: Unexpected identifier文件的第1行得到.txt

文本文件类似于:

----My document----
Once upon a time, there was a fat princess...

如何解决此问题?

3 个答案:

答案 0 :(得分:4)

我的建议是创建一个使用curl获取文件内容的php文件:

//getFile.php
<?php
    if(isset($_GET['filename'])) {
        $fName = $_GET['filename'];

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $fName);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $text = curl_exec($ch);
        echo $text;
    }
?>

对于jQuery:

$.ajax({
    url : './getFile.php',
    data : { filename : 'http://example.com/file.txt'},
    success : function (r) { console.log(r) //your data }
})

答案 1 :(得分:2)

在我看来,如果你使用CORS instead of jsonp,你就不需要那么多了。

在PHP中,seems to be就像在服务器端添加类似的东西一样简单:

header("Access-Control-Allow-Origin: *");

以下是getting CORS working的最后一个资源。

答案 2 :(得分:1)

由于您没有返回json对象,因此应将dataType更改为text。

$.ajax({  
   url: "http://example.com/file.txt",  
   dataType: "text",  
   success: function(data) { remoteFile = data; }  
});