尽管脚本工作,ajax调用有时会返回任何内容

时间:2016-02-09 09:48:52

标签: javascript php jquery ajax

我正在使用JQuery来获取标记data-code及其id的值,并将它们添加到javascript对象中,以通过ajax将它们传递给PHP脚本。 PHP脚本从其他服务器获取一些数据,处理数据并将结果返回给ajax调用。 代码工作正常,但我注意到有时结果根本没有返回,也没有返回任何错误。这似乎发生在互联网连接不是我公司的高速连接时,但我不确定我的'诊断'。

以下是工作代码:

var codeArray = [];
var obj = {};

// select all .rating[data-code] class tags and get the 'data' value.
// add the values to a javascript object the pair key:value i.e. {"16": "74875932", "17": "98548957"}
$('.rating[data-code]').each(function() {
    var code = $(this).data('code');
    var id = $(this).attr('id');
    obj[id] = code
});

codeArray.push(obj);

// If codeArray is not empty send IDs and CODEs to PHP and get results back
if(codeArray.length > 0) {
    $.ajax ({
        type: "post",
            url: "ajax.curl.php",
            data: {codeArray},
            dataType: 'json',
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert("some error");
            },
            success: function(data) {
            $.each(data, function(key, value){
                $('#' + key).children().html(value);
            });
        }
    });
}

这是PHP代码。我正在使用CURL来获取HTML内容

$codeArray = $_REQUEST["codeArray"];

foreach($codeArray as $number => $number_array) {
    foreach($number_array as $key => $value) {

        // process the data  

    }
}
// output in json format
echo json_encode($output);

function get_url_contents($url) {
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crl, CURLOPT_CONNECTTIMEOUT, 5);

    $ret = curl_exec($crl);
    curl_close($crl);
    return $ret;
}

有什么建议吗?服务器是从哪里获取数据阻止了什么?请考虑javascript传递给PHP脚本的“代码”数量不超过5或6.我没有使用数百或数千个调用。

我尝试在每个PHP循环中添加sleep(1)来减慢请求速度,但它没有改变任何内容。

0 个答案:

没有答案