这两天在研究模拟登陆网盘。其中遇到一个问题,需要模拟发送一个POST,但是检测HTTP数据通信发现在发送时,经过POST发送的字段总是比form内的字段多一个下划线字段。一开始百思不得其解,后来经过仔细观察,发现这个字段的数值是一个数值,隐约感觉非常像json的时间字段,精确到毫秒的ticks。经过转换发现确实是标示发送时间的字段。
下划线字段的含义解决了,那它究竟是谁添加的呢?
在阅读发送这段内容的源代码后发现,这段代码是由jQuery的getJSON方法发送的,而且在发送前,已经使用ajaxSetup方法配置成异步、不缓存。阅读了jQuery的Refference后,发现默认就是异步,但是缓存为true。所以料想添加的下划线字段应该是用精确到毫秒的时间字段来将url标识为独一无二的请求,从而强制服务器发送最新的数据。
至此下划线问题完美解决:它是jQuery的ajax方法在设置为不缓存时自动添加的时间字段。