3

我正在通过 jquery ajax 查询谷歌融合表:

var queryUrlStart = 'http://www.google.com/fusiontables/api/query?sql=';
var queryUrlEnd = '&jsonCallback=?'; // ? could be a function name
var sql = "SELECT * FROM " + this.tableId;
if (where !== undefined) {
    sql += " WHERE " + where;
}
sql += " ORDER BY '" + _scaleRow.name + "' DESC";

var queryUrl = encodeURI(queryUrlStart + sql + queryUrlEnd);

$.ajax({
    type: 'POST',
    context: this,
    url: queryUrl,
    dataType: 'json',
    success: this.handleData
});

我希望能够知道正在查询哪个表,所以我想添加一个额外的参数来识别它。我试过了:

$.ajax({
    type: 'POST',
    context: this,
    data: {'table' : this.tableId}
    url: queryUrl,
    dataType: 'json',
    success: this.handleData
});

但我在任何可以检索的地方都看不到它table

4

1 回答 1

1

可能有不同的方式,例如:

$.ajax({
    context: this,
    url: queryUrl,
    dataType: 'json',
    beforeSend:(function(data){return function(jqXhr){jqXhr.data=data}})
               ({'table' : this.tableId}),
    success: this.handleData
});

它使用 beforeSend 方法向 jqXhr 对象添加新属性。jqXhr 对象可以在成功回调中访问(它是第三个参数),因此这将是您成功回调的示例:

handleData=function(data,status,jqXhr){
             alert('results for table:'+jqXhr.data.table);
           };
于 2013-05-06T19:32:33.067 回答