2012-09-06 75 views
0

http://nwgerh.site88.net/default.php,代碼:使用JavaScript來訪問PHP變量

<html> 
<body> 
<?php 

$url = "http://www.google.com"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($ch); 
curl_close($ch); 
echo json_encode($data); 
?> 
</body> 
</html> 

我試圖使用JavaScript從PHP訪問JSON。看到我的JSFiddle(基於this tutorial),但有錯誤。

怎麼了?是否有跨域問題?

+2

有什麼錯誤? – andrewsi

+0

我得到︰Timestamp:'SyntaxError:missing)在參數列表後' –

+0

...你有沒有試過在參數列表後添加一個')'? – andrewsi

回答

0

請發表你得到了什麼錯誤..

但是你撥弄反正有一個錯誤:

$.getJSON('http://nwgerh.site88.net/default.php', function(data) { 
    document.write(data); 
}​);​ 

有人失蹤後)

,如果它是在它應該工作相同的域名

+0

它不在同一個域,是一個問題? –

+0

然後你必須使用jsonp,或者設置原始頭文件header('Access-Control-Allow-Origin:*');',如另一個帖子所說 –

+0

好吧,我添加了'header('Access-Control -Allow-Origin:*');'到PHP文件,但仍然沒有任何事情發生。 –

0

嘗試在URL中添加?callback = {}。這將強制jQuery中的JSONP AJAX請求 - 這將消除您的跨域問題。

+0

好吧,我試過了,但我沒有收到任何東西:http://jsfiddle.net/XUTbs/2/ –

+0

更改{}爲? (問號)。抱歉。但是,這實際上是一個跨域問題,這個解決方案應該可以解決這個問題。 –

+0

由於您的回覆正在返回HTML文檔,因此它不會使用document.write(您可以通過查看源代碼來查看它,但它不會顯示在屏幕上)。您需要解析響應數據。 –