所以我试图访问一些内容在一个外部php文件(不在我的域),但我可以浏览器到内容,但我不能通过jquery ajax访问它这是我的代码:
function newarticle()
{
var ajax_load = "<img src='images/spiral.gif' align='center' alt='loading...' />";
//load() functions
var loadUrl = "http://www.webapp-testing.com/includes/newarticles.php";
$("#articles").click(function(){
$("#pagetitle").html(ajax_load).load("New Articles");
$("#listarticles").html(ajax_load).load(loadUrl);
});
}
我访问这个内容做错了什么?
由于同源策略,您只能在同一域中发出AJAX请求。最好的办法是创建一个服务器端代理(比如PHP)。然后,您将在代理(将在同一台服务器上)上发出请求,代理将向页面发出请求并返回信息。
正如Xeon06所提到的-您不能使用AJAX进行跨站点请求。你可以看一下JSONP它允许你这样做。
链接到jQuery文档
链接到JSONP维基百科
创建您自己的php文件,使用curl获取所需url的内容。-> http://ch.php.net/manual/de/book.curl.php
=> your_php_file.php
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.webapp-testing.com/includes/newarticles.php");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($curl);
curl_close($curl);
print $page;
?>
在javascript代码中,调用your_php_file.php
function newarticle()
{
var ajax_load = "<img src='images/spiral.gif' align='center' alt='loading...' />";
//load() functions
var loadUrl = "your_php_file.php";
$("#articles").click(function(){
$("#pagetitle").html(ajax_load).load("New Articles");
$("#listarticles").html(ajax_load).load(loadUrl);
});
}