Javascript 从远程服务器加载.txt文件
我试图从另一台服务器上运行的javascript获取存储在我的一台服务器上的Javascript 从远程服务器加载.txt文件,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我试图从另一台服务器上运行的javascript获取存储在我的一台服务器上的.txt文件的内容 我正在使用: $.ajax({ url: "http://example.com/file.txt", dataType: "jsonp", success: function(data) { remoteFile = data; } }); 但我在远程.txt文件的第1行得到了未捕获的SyntaxError:Unexpected identifier 文
.txt
文件的内容
我正在使用:
$.ajax({
url: "http://example.com/file.txt",
dataType: "jsonp",
success: function(data) { remoteFile = data; }
});
但我在远程.txt
文件的第1行得到了未捕获的SyntaxError:Unexpected identifier
文本文件类似于:
----My document----
Once upon a time, there was a fat princess...
如何解决此问题?因为您没有返回json对象,所以应该将数据类型更改为文本
$.ajax({
url: "http://example.com/file.txt",
dataType: "text",
success: function(data) { remoteFile = data; }
});
我的建议是创建一个使用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;
}
?>
在我看来,如果你用的话,你就不需要到处乱搞了 在PHP中,只需在服务器端添加如下内容即可:
header("Access-Control-Allow-Origin: *");
这是最后一个资源。您的文件不是json。如果是跨域请求,则必须在服务器端对其进行代理。请尝试将数据类型更改为“文本”“file.txt”不是json。@JonLaMarr但会出现跨域错误fired@A.Wolff确切地说,我需要JSONP用于跨源..@user2070518,但文本文件不是json有效的,因此,代理它服务器端
text
不允许跨源域请求这是浏览器的安全功能。不幸的是,没办法。如果要使用json,您需要将该文件更改为json文件,您需要使用服务器端脚本(如PHP)获取该文件。@user2070518是的,如果您将其包含在一个PHP文档中,该文档还添加了jsonp回调。我只能在接收服务器上使用JS
header("Access-Control-Allow-Origin: *");