0

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

我正在使用:

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

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

文本文件类似于:

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

我该如何解决这个问题?

4

3 回答 3

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 }
})
于 2013-09-06T17:29:03.653 回答
2

在我看来,如果您使用CORS 而不是 jsonp,您就不需要那么麻烦了。

在 PHP 中,它似乎就像在服务器端添加这样的东西一样简单:

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

这是最后一个资源,用于让 CORS 正常工作

于 2013-09-06T17:35:49.130 回答
1

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

$.ajax({  
   url: "http://example.com/file.txt",  
   dataType: "text",  
   success: function(data) { remoteFile = data; }  
});  
于 2013-09-06T17:11:58.930 回答