2011-11-25 139 views
1

所以我想訪問外部php文件(不是我的域名)中的一些內容,但我可以瀏覽到內容,但我無法通過jquery ajax訪問它這裏是我的代碼:使用Ajax訪問外部php文件

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); 
}); 
} 

我做了什麼不正確訪問此內容?

回答

2

由於Same Origin Policy,您只能在同一個域上發出AJAX請求。你最好的選擇是製作一個服務器端(像PHP這樣的代理)。然後,您將在代理(它將位於同一臺服務器上)上發出請求,這會向頁面發出請求並返回信息。

+0

我怎樣才能弄完然後 –

+0

就像我告訴你了。製作一個服務器端腳本來爲您做請求,並將其放在與您的JavaScript相同的域中。 –

1

正如Xeon06所提到的那樣 - 您無法通過AJAX製作跨站點請求。你可以看看JSONP,但基本上可以讓你做到這一點。
Link to jQuery docs
Link to JSONP Wikipedia

+0

...如果您可以修改您嘗試讀取的頁面以支持JSONP。 –

+0

我可以修改它,我只是不知道該怎麼做 –

0

創建自己的PHP文件,獲得所需的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); 
}); 
}