2012-02-27 131 views
0

我想要一個HTML文件加載PHP文件的「curl_exec()」方法的結果。jQuery「load()」無法加載PHP「curl_exec()」結果

PHP文件位於localhost,HTML文件可以在任何地方。

例如,PHP文件名是「curl.php」。

我用jQuery「load()」來加載結果,但它不起作用,即使在我將文件上傳到Web服務器之後。

的HTML文件代碼:

http://jsfiddle.net/aTkEZ/

的 「curl.php」 代碼:

http://jsfiddle.net/Quk8N/

什麼是錯我的代碼?

+0

您是否嘗試過一些基本的調試 - 瀏覽器顯示「load()'請求?任何迴應 ? 'curl_exec()'返回什麼? – ManseUK 2012-02-27 11:18:10

+0

當我在瀏覽器中打開HTML文件時,它什麼也沒有顯示。如果我直接在瀏覽器中打開「http://localhost/curl.php」,它會顯示我請求的網頁。 – Bayu 2012-02-27 11:22:07

+0

HTML文件是否也託管在您的服務器上? – spencercw 2012-02-27 11:23:56

回答

2

首先,你應該設置爲捲曲呼叫一些參數,像這樣:

​​

即使將報頭和用戶代理應該根據您試圖從源頭在網站上予以考慮。

通過在瀏覽器中打開文件並檢查它是否返回頁面,然後繼續並查看是否可以使用Ajax獲取它來測試cURL。

嘗試用$就

$.ajax({ 
    url: "/curl.php", 
    type: "POST", 
    dataType: "html", 
    success: function(data) { 
     $(document).html(data); 
    } 
}); 

更換該負載功能,看看是否可行?

+0

我試過了,在本地和在線都不起作用。 – Bayu 2012-02-27 12:11:24

1

通過JavaScript的AJAX請求通常綁定到同源策略。這意味着,除非瀏覽器認爲所提取的頁面與當前正在執行的頁面位於同一臺服務器上,否則將返回錯誤。

要查看是否返回一個錯誤,你應該添加一個回調是這樣的:

$('#content').load(url, function (data, error) { 
    // check the error parameter to see if there was an 
    // error and react accordingly 
}); 

可能有一些問題與同源策略與本地主機,或者至少我曾與同一產地的一些問題本地主機策略。嘗試將文件上傳到某個地方的實際主機。

+0

本地測試,它僅返回「錯誤」作爲消息。然後我將它重新上傳到在線Web服務器,消息是:資源解釋爲腳本,但是使用MIME類型text/html傳輸:「http://analytics.hosting24.com/count.php」。 error404.000webhost.com:2Uncaught語法錯誤:意外標記< curl.html:12未引用ReferenceError:$未定義。這是什麼意思? – Bayu 2012-02-27 12:04:29

+0

這意味着你正試圖抓取的文件中有錯誤,我想。沒有看到你實際使用的代碼,我只能推測(它說第12行有錯誤,而PHP生成的行號可以關閉,我以前沒有看到過)。 – Drakekin 2012-02-27 17:21:07