我正在尝试从另一台服务器上运行的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...
如何解决此问题?
答案 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; }
});