为什么我在来自服务器的 ajax 调用中得到额外的数据作为响应?

这是我的代码


$url = 'https://'.$_ENV["MAIL_CHIMP_DC"] .'.api.mailchimp.com/3.0/lists/'.$_ENV["MAIL_CHIMP_LIST_ID"].'/members';

    error_log('url-mail_chimp');

    error_log($url);

    $authorization_header=base64_encode('anystring:'.$_ENV['MAIL_CHIMP_API_KEY']);

    error_log($authorization_header);

    $ch=curl_init($url);

    $data_string = $data;

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','Authorization:Basic '.$authorization_header));

    $result =curl_exec($ch);

    error_log($result);

    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    error_log($httpcode);

    curl_close($ch);

    echo 'hello';

这一切都在一个控制器中,该控制器在 ajax 调用中被调用。但是当我console.log(data)在 jquerysuccess处理程序上做时,我得到了由 curl 请求发送的完整响应,并且“hello”被附加到该响应中。我不知道如何发送响应。


泛舟湖上清波郎朗
浏览 124回答 1
1回答

呼唤远方

您缺少CURLOPT_RETURNTRANSFERcurl 调用的选项。没有这个,curl_exec将不会将调用的响应作为字符串返回,而是直接输出。从手册中CURLOPT_RETURNTRANSFER:TRUE 将传输作为 curl_exec() 的返回值的字符串返回,而不是直接输出。所以,添加curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);到您的代码,输出应正确返回到您的$result变量中。
打开App,查看更多内容
随时随地看视频慕课网APP