使用Ajax访问外部php文件


Using Ajax to access an external php file

所以我试图访问一些内容在一个外部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);  
}); 
}