17

当我查看来自 jsonp 请求(下面的客户端代码)的查询字符串时,有 2 个对象,一个需要在响应中使用的“回调”字符串(因此客户端代码指向成功处理程序)和一个带有关键_...这个下划线是干什么用的?我在任何文档中都找不到对此的任何引用,它似乎是某种类型的。

我认为它可能用于指向错误处理程序(在其上,与回调结合,或替换回调字符串中下划线后的数字),但它似乎不是。

url = 'http://localhost:11767/Handlers/MyHandler.ashx';

...

$.ajax({
    url: url,
    dataType: "jsonp",
    error: function (jqXHR, textStatus, errorThrown) {
        //...
    },
    success : function(d) {
        //...
    }
});

或者

    $.getJSON(url + "?callback=?", function(d) {
    }).success(function(d) {
        //...
    }).error(function(jqXHR, textStatus, errorThrown) {
        //...
    }).complete(function(d) {
        //...
    });

旁注以防万一这有助于任何人阅读:因为这是一个 jsonp 请求,只有在客户端发生异常时才会触发错误,例如超时或响应格式有问题(即不使用回调),为了克服这个问题,我总是在处理程序中记录并吞下异常,但给出一个标准的响应对象(所有响应都由它组成),它具有异常的状态属性和消息属性。

4

1 回答 1

32

您所指的数字是请求的日期时间戳。获取号码并使用浏览器的 JavaScript 控制台并输入:alert(new Date(/*insert number here*/))

您将收到带有日期/时间的警报。

编辑:

这是jQuery.ajax文档中关于 ajax 请求的片段:

cache
默认值:true,对于 dataType 'script' 和 'jsonp'
为 false 如果设置为 false,它将强制浏览器不缓存请求的页面。将缓存设置为 false 还会将查询字符串参数 附加"_=[TIMESTAMP]"到 URL。

于 2012-10-03T18:26:42.090 回答