Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 YQL-如何通过自定义ID对请求进行签名_Javascript_Jquery_Ajax_Asynchronous_Yql - Fatal编程技术网

Javascript YQL-如何通过自定义ID对请求进行签名

Javascript YQL-如何通过自定义ID对请求进行签名,javascript,jquery,ajax,asynchronous,yql,Javascript,Jquery,Ajax,Asynchronous,Yql,我有一个非常简单的jQuery应用程序,用 SELECT title, href FROM digg.search.search WHERE query="cats" LIMIT 5 我将每个查询记录到简单的ulli列表中,并在其中指示ajax请求的状态(ajaxloader,ok,error)。请求完成后,我想将相应li元素的CSS类分别从的“加载”更改为的“确定”/的“错误” 但为了识别正确的li元素,我必须通过某种唯一的ID找到它。在AJAX调用之前,我通过data-属性标记li元素,如

我有一个非常简单的jQuery应用程序,用

SELECT title, href FROM digg.search.search WHERE query="cats" LIMIT 5
我将每个查询记录到简单的ulli列表中,并在其中指示ajax请求的状态(ajaxloader,ok,error)。请求完成后,我想将相应li元素的
CSS类
分别从
的“加载”
更改为
的“确定”
/
的“错误”

但为了识别正确的li元素,我必须通过某种唯一的ID找到它。在AJAX调用之前,我通过
data-
属性标记li元素,如下所示:

var rqid = uniqId();
$searchLogger.append('<li class="loading" data-rqid="'+ rqid +'"><a href="#">' + q + '</a></li>');
$.ajax({
    url     : 'http://query.yahooapis.com/v1/public/yql',
    type    : 'POST',
    dataType: 'json',
    data    : {
        callback : '',
        format   : 'json',
        env      : 'store://datatables.org/alltableswithkeys',
        q        : 'SELECT title, href FROM digg.search.search WHERE query="' + q + '" LIMIT 5'
    }

YQL请求是否有任何选项,通过我的
rqid对请求进行“签名”,并在回调中获取该ID?

我认为YQL中没有任何选项可以将这样一个唯一的ID添加到回调中返回的查询中

由于您使用的是jQuery,因此您可能可以执行jQuery论坛中所述的操作:。基本上,它们是在XHR请求中添加一个您可以在回调函数中读取的唯一标识符

success: function(data) {
    $searchLogger.find('[data-rqid="' + idOfThisRequest + '"]')
        .removeClass('loading')
        .removeClass('error')
        .addClass('ok');

    ... // other code
}