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

时间:2016-01-03 07:12:46

标签: php jquery ajax http curl

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

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

发生在5次中的1次。很难成为第五个人,但你要做的就是再次按下按钮,它通常不会连续发生。

---问题--- 有没有办法让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 CODE ---

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或编程!

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

1 个答案:

答案 0 :(得分:0)

我需要做的就是在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();
    }
    };
);