当前位置: 首页 > 面试题库 >

为什么jQuery.ajax()向网址添加参数?

湛宏旷
2023-03-14
问题内容

我有一种jQuery.ajax()用于获取xml文件的数据获取方法。

/*    */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会以某种方式向网址添加参数()。如果文件名中不包含该范围内的字符,则一切正常。

类型设置为,xml因此不应混淆类型。xml文件的标题也已适当设置。

我可以从控制台中看到jQuery引发错误,但是我不确定问题出在哪里。

可能是文件名格式出现问题,但是我没有在网上找到有关AJAX文件名规范的任何资源。有任何想法吗?

感谢您的帮助!


问题答案:

那是一个“缓存破坏者”,将被忽略。

添加的参数更改了url,使其恰好绕过了您与源之间的大多数所有缓存。

如果未修改Url,则很可能会从您与资源之间的任何缓存中提供数据,包括您的浏览器,任何代理,甚至可能是服务器本身。

您可以在网上找到很多说明。这是一个。



 类似资料:
  • 问题内容: 在我看来,要获取如下网址参数: 在我的网址中,我尝试通过这种方式通过网址模板标签传递参数,如下所示: ?之后的参数 显然不起作用,如何传递此数据值以便通过get进行检索? 问题答案: 只需将它们添加到末尾即可: [没有其他可改进的地方,但是在修复代码滴答时出现了一个的错误]

  • 问题内容: 是否可以在向其添加一些参数数据的同时将请求转发给另一个控制器?我尝试添加到ModelMap中,但是它似乎不存在问题。我正在做类似的事情: 我能想到的唯一其他方法是将参数放在会话上,然后将其弹出目标控制器。 问题答案: 最简单的方法是将数据添加到请求中。 由于这是转发,因此将相同的请求传递到服务器内的不同处理程序。 作为示例,让我们从两个控制器的简单设置开始,一个转发到另一个: 添加数据

  • 首先,我不确定这是不是实现我想要的东西的正确方法..我正在尝试将如下所示的导出绑定添加到router . navigate()-方法: 问题是我从不使用该指令,而是通过路由器来处理: 我如何实现相同的导出绑定从第一个例子中的接受呼叫()-方法?我已经添加了一个输入()变量,并尝试使用queryParams,如下所示: 但这并不起作用。

  • 问题内容: 今天,我一直在摆弄ui-router,以更好地了解Ionic的脚手架,而我注意到的一件事是,它们为“选项卡”的抽象状态提供了url。 我仅有两次使用抽象状态时,我使用一个空字符串作为url,并且注意到如果我不小心尝试导航到抽象状态(而不是子状态),则会收到错误消息: 无法转换为抽象状态“ [insertAbstractStateHere]” 编辑: “此外,在实验中,当我尝试为我的抽象

  • 返回包含当前URL参数的对象。 通过适当的正则表达式,使用 String.match() 来获得所有的键值对, Array.reduce() 来映射和组合成一个单一的对象。 将 location.search 作为参数传递给当前 url。 const getURLParameters = url => url .match(/([^?=&]+)(=([^&]*))/g) .re

  • 这是我的密码: 这里是网络调试: 数据存储在请求有效载荷中,但在我的服务器中没有收到POST值: 我相信这个错误来自于帖子中没有设置标题,我做错了什么?