2010-06-08 102 views
2

我想做一个PHP脚本的ajax调用。 php脚本使用curl调用rss提要,获取数据并将数据返回给函数。ajax到PHP卷曲和返回

我不断收到一个错误

警告:错误的参数计数为curl_error()” ......

这里是我的PHP代码:1

$ch = curl_init() or die(curl_error()); 
     curl_setopt($ch, CURLOPT_URL, $feed); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $data1 = curl_exec($ch) or die(curl_error()); 
     echo $data1; 

和阿贾克斯电话:

$.ajax({ 
         url: "getSingleFeed.php", 
         type: "POST", 
         data: "feedURL=" + window.feedURL, 
         success: function(feed){ 

        alert(feed); 

        }}); 

我测试了所有vari他们正在被正确传递,我可以回应他们。但是这一行:$ data1 = curl_exec($ ch)或die(curl_error());

是什么给我的错误。我在其他页面上使用curl做同样的事情,只是没有Ajax,而且它工作正常。有没有什么特别的我需要做与Ajax做到这一点?

回答

7

The PHP manual指出curl_error的第一个参数是由curl_init();返回的句柄。尝试替换下面给出的内容。这将$ ch变量作为参数添加到curl_error();的所有实例。

$ch = curl_init() or die(curl_error($ch)); 
     curl_setopt($ch, CURLOPT_URL, $feed); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $data1 = curl_exec($ch) or die(curl_error($ch)); 
     echo $data1; 
+0

当然,如果curl_init失败,那么可能会产生运行时错误,因为$ ch将具有值False,这不是正确的类型。 – Craig 2010-06-08 00:45:31

+0

同样的事情。就像我说的,curl脚本在php中工作正常。有一次,我从ajax调用它不起作用。 – pfunc 2010-06-08 00:46:28

+0

使用curl_error($ ch)替换第四行中的curl_error(),并且我们有一个答案... – Wrikken 2010-06-08 00:48:08