【问题标题】:ajax to php to curl and backajax 到 php 卷曲和返回
【发布时间】:2011-02-28 23:05:38
【问题描述】:

我正在尝试对 php 脚本进行 ajax 调用。 php 脚本使用 curl 调用 rss 提要,获取数据,并将数据返回给函数。

我不断收到错误

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

这是我的 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 调用:

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

                    alert(feed);

                    }});

我测试了所有变量,它们被正确传递,我可以将它们回显出来。但是这一行: $data1 = curl_exec($ch) or die(curl_error());

是什么给了我错误。我在其他页面上用 curl 做同样的事情,只是没有 ajax,它工作正常。我需要用 ajax 做些什么来做到这一点吗?

【问题讨论】:

    标签: php jquery ajax rss curl


    【解决方案1】:

    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;
    

    【讨论】:

    • 当然,如果 curl_init 失败,这可能会导致运行时错误,因为 $ch 的值 False 不是正确的类型。
    • 同样的事情。就像我说的,curl 脚本在 php.ini 中运行良好。一旦我从 ajax 调用它就不起作用了。
    • 让它'用 curl_error($ch) 替换第 4 行中的 curl_error() 并且我们有一个答案......
    • 她走了...那么,它只是以不同的方式处理错误吗?
    • 不,可能 $feed 是错误的,但是 curl 会在您将 $ch 添加到它的 curl_error() 函数后立即告诉您。
    猜你喜欢
    • 2013-05-03
    • 2015-09-18
    • 2018-05-02
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多