Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax调用有时不返回任何内容,尽管脚本正在工作_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript ajax调用有时不返回任何内容,尽管脚本正在工作

Javascript ajax调用有时不返回任何内容,尽管脚本正在工作,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我使用JQuery获取标记data code及其id的值,并将它们添加到javascript对象中,通过ajax将它们传递给PHP脚本。PHP脚本从另一台服务器获取一些数据,处理这些数据并将结果返回给ajax调用。 代码工作正常,但我注意到有时结果不会返回,也不会返回任何错误。这似乎发生在互联网连接不是像我公司那样的高速连接时,但我不确定我的“诊断” 以下是工作代码: var codeArray = []; var obj = {}; // select all .rating[data-co

我使用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)
,以降低请求速度,但没有任何改变。

如果不访问系统,就无法进行诊断。您应该查看日志curl超时和连接错误,或者切换到另一个HTTP客户端。curl请求是否指向您自己的站点?@Johannes。如何记录curl超时和连接错误?@乔莫斯。不,我正在从其他服务器请求数据。奇怪的是,我提出了6个请求,例如,只有4个实际返回数据。然后我刷新页面,现在我收到5个返回数据的请求。如果我再次刷新,可能只会收到2个数据请求。伙计,如果你在谷歌上搜索“curl log timeout”,这是谷歌的第一次和第二次点击: