2012-02-27 134 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