PHP cURL发送HTTP 200 ok,没有数据到AJAX


PHP cURL sending HTTP 200 ok with no data to AJAX

简而言之,我的AJAX函数POST的用户输入到一个PHP文件,该文件使用POST数据与cURL协作,在成功时将变量返回给AJAX。

然而,ajax总是收到一个200 OK的HTTP代码,即使变量为空,这也会导致我的脚本崩溃。

五次中有一次发生。成为第五个人很糟糕,但你所要做的就是再次按下按钮,而这通常不会连续发生。

---问题---有没有办法让cURL在POST返回ajax之前检查$var,如果$var为空,请再次执行cURL请求。

---PHP代码--

$c = curl_init($blizz_url . $blizz_key);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($c);
if (curl_error($c))
die(curl_error($c));
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);

if (!empty($html)) {
 echo $html;
}

---JS代码--

function ajaxR() {
//by adding the return you can now appy the wait and done params
return $.post("main.php?ajax=true", {name: $('.nameinp').val(), realm:      $('.realminp').val()},
function (data)
    {
        axisT = data;
    }
);

};

我尝试了一些东西,但在阅读了更多关于堆栈和其他资源的内容后,我认为php中的错误处理需要改进,但我对cURL或编程的了解还不够!

任何帮助都将不胜感激!!!!

我所需要做的就是在ajax中添加一个条件,即在成功检查数据时,是否确实包含数据,以及是否为数据设置了axisT(我想要返回的var)。

否则再次运行ajax帖子

function ajaxR() {
//by adding the return you can now appy the wait and done params
return $.post("main.php?ajax=true", {name: $('.nameinp').val(), realm: $('.realminp').val()},
function (data)
    {
    if( data !== "undefined"){
    axisT = data;
    } else {
         ajaxR();
    }
    };
);