jQuery jsonp ajax 请求的查询字符串中的下划线是啥?
Posted
技术标签:
【中文标题】jQuery jsonp ajax 请求的查询字符串中的下划线是啥?【英文标题】:What is the underscore for in the query string of a jQuery jsonp ajax request?jQuery jsonp ajax 请求的查询字符串中的下划线是什么? 【发布时间】:2012-09-24 10:50:06 【问题描述】:当我查看来自 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 请求,只有在客户端发生异常时才会触发错误,例如响应的格式存在超时或问题(即不使用回调),为了克服这个问题,我总是记录并吞下处理程序中的异常,但给出一个标准的响应对象(所有响应都由它组成)具有异常状态属性和消息属性。
【问题讨论】:
我至少可以告诉你,它肯定不适合错误处理程序,因为 JSONP 请求插入了一个脚本标记并且没有错误处理程序,所以上面代码中的错误函数永远不会触发。很可能下划线根本与 XMLHttpRequest 无关? @adeneo - 我得出了同样的结论(尽管在错误处理程序底部阅读我的注释)。下划线可能无关紧要,我只是想知道它是什么,它来自哪里以及它是否有任何用处? 【参考方案1】:您所指的数字是请求的日期时间戳。获取号码并使用浏览器的 javascript 控制台并输入:alert(new Date(/*insert number here*/))
您将收到带有日期/时间的警报。
编辑:
这是来自jQuery.ajax 文档的关于 ajax 请求的 sn-p:
缓存 默认值:true,对于 dataType 'script' 和 'jsonp' 为 false 如果设置为 false,它将强制浏览器不缓存请求的页面。 将缓存设置为 false 还会附加一个查询字符串参数
"_=[TIMESTAMP]"
, 到网址。
【讨论】:
以上是关于jQuery jsonp ajax 请求的查询字符串中的下划线是啥?的主要内容,如果未能解决你的问题,请参考以下文章