我有一种jQuery.ajax()用于获取xml文件的数据获取方法。
jQuery.ajax()
/* */data: function() { /* debug */try { var url = arguments[0] ; var type = arguments[1] ; var scope = arguments[2] ; var callback = arguments[3] ; var self = this ; if(this.cache[url]) { callback(this.cache[url]) ; } else if(!this.cache[url]) { $.ajax({ type: "GET" , url: url , dataType: type , cache: false , success: function(data) { if(type == "text/xml") { var myJson = AUX.json ; var jsonString = myJson.build(data,scope,null) ; var jsonObject = $.parseJSON(jsonString) ; self.cache[url] = jsonObject ; callback(url) ; } else if(type == "json") { self.cache[url] = data ; callback(url) ; } } , error: function() { throw "Ajax call failed." ; } }) ; } /* debug */} catch(e) { /* debug */ alert("- caller: signTutor.data\n- " + e) ; /* debug */} } ,
我的问题是:?_=1272708280072如果文件名中存在ASCII范围之外的转义(十六进制表示法)或未转义utf-8字符,则jQuery会以某种方式向网址添加参数()。如果文件名中不包含该范围内的字符,则一切正常。
?_=1272708280072
类型设置为,xml因此不应混淆类型。xml文件的标题也已适当设置。
xml
我可以从控制台中看到jQuery引发错误,但是我不确定问题出在哪里。
可能是文件名格式出现问题,但是我没有在网上找到有关AJAX文件名规范的任何资源。有任何想法吗?
感谢您的帮助!
那是一个“缓存破坏者”,将被忽略。
添加的参数更改了url,使其恰好绕过了您与源之间的大多数所有缓存。
如果未修改Url,则很可能会从您与资源之间的任何缓存中提供数据,包括您的浏览器,任何代理,甚至可能是服务器本身。
您可以在网上找到很多说明。这是一个。