通过 AJAX 加载时显示相同数据的两个 cURL 请求

Two cURL requests showing the same data when loaded via AJAX

我在同一 php 页面中发出两个单独的 cURL 请求。当我自己加载页面时,它按预期工作,每个请求 returning 不同的正确数据。

然而,当我通过 AJAX 加载页面时,第二个请求显示与第一个相同的数据。为什么会这样?代码如下:

    $auth = base64_encode( 'user:'.$api_key );
    $data = array(
        'apikey'        => $api_key,
    );
    $json_data = json_encode($data);
    $ch = curl_init();
    $ch2 = curl_init();

    $curlopt_url = "https://us7.api.mailchimp.com/3.0/reports/".$_GET['id'];
    curl_setopt($ch, CURLOPT_URL, $curlopt_url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Authorization: Basic '.$auth));
    curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/3.0');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
    $result = curl_exec($ch);
    $results = json_decode($result, true); ?>

    $curlopt_url_b = "https://us7.api.mailchimp.com/3.0/reports/".$_GET['id'].'/sent-to/?count=5000 ';

    curl_setopt($ch2, CURLOPT_URL, $curlopt_url_b);
    curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, "GET");
    curl_setopt($ch2, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Authorization: Basic '.$auth));
    curl_setopt($ch2, CURLOPT_USERAGENT, 'PHP-MCAPI/3.0');
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch2, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch2, CURLOPT_POSTFIELDS, $json_data);
    $recipient_result = curl_exec($ch2);
    $recipients = json_decode($recipient_result, true); 

当通过 AJAX 加载时,$recipients == $results,当它们应该 return 来自完全不同的端点时。给出了什么?

问题出在 AJAX 请求,而不是 cURL 请求。 AJAX 请求向 URL 添加了一个附加参数(在本例中为 'ajax=true'),该参数正在传递到 $_GET 变量中,因此请求了错误的端点。它在独立加载时正确加载,因为 URL 没有被 JS 更改。