如何使用jQuery加载远程文件?

时间:2014-12-09 20:26:17

标签: php jquery

我目前正在使用此代码:

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<div class="div"></div>
<script>
var timer = 10;
var source = 'file.php';
$(document).ready(function() {

  refresh();

  setInterval(function() { refresh() }, timer * 1000);

});
function refresh() {

    $('.div').load(source);

}
</script>

但是,如果我添加一个指向file.php文件的链接,比如http://example.com/file.php,它就不会加载任何内容。

我想做的是能够加载远程文件。

我该怎么做呢? 或者出于安全原因禁用此功能?

我的控制台发出以下错误:

XMLHttpRequest cannot load SOURCE. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'URL' is therefore not allowed access.

SOURCE是我尝试加载的地方,而URL是我尝试加载源代码的地方。

3 个答案:

答案 0 :(得分:1)

我认为jquery load()函数只能加载来自同一域的内容。

您可以使用跨域名ajax调用(http://api.jquery.com/jquery.ajax/上的文档)来获取结果,具体取决于您尝试获取的内容。

答案 1 :(得分:0)

从我的理解你正在尝试获取'file.php'代码文本..这是不可能的服务器端脚本只输出他们的屏幕。例如echos / print / Var dump。

如果您尝试在远程服务器上激活php脚本,可以使用JQuery进行post / get并获取脚本回复。

答案 2 :(得分:0)

好的。

我的问题是我没有启用CORS。

我通过将以下代码添加到我的请求文件(file.php)

的顶部来修复此问题
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header("Access-Control-Allow-Headers: X-Requested-With");

现在可行。

让原点成为任何人是不安全的,我不推荐,但对于我正在做的事情,这很好。