我有一个应用程序,其中大部分代码都是用javascript编写的。我遇到了一个奇怪的问题。我有一个查询字符串,我的应用程序读取它以执行各种操作。昨天我更改了查询字符串参数的顺序,应用程序停止工作。如果我把原始订单退回,那么它就开始工作了。可能是什么原因?我认为参数排序的效果无关紧要。但是,显然它出于某种原因确实很重要。我仍在试图挖掘出可能存在的问题,但想知道这里有没有遇到类似的问题?
感谢。
答案 0 :(得分:10)
正确编写的应用程序将以任何顺序查找给定的查询参数,并且不会对订单敏感。虽然编写得很差的解析代码可能只能在开头,结尾处找到给定的参数,或者只能在其他参数之后找到。在没有看到解析查询参数的代码的情况下,我们无法确切地说出它有什么问题,但是可能编写的位置敏感的代码编写得很糟糕。
如果您发布解析查询参数的代码和有效的查询字符串,那么我们可以更具体地建议。您还应该检查以确保您的查询参数中没有任何应该编码的字符,这些字符可能会丢弃。
答案 1 :(得分:1)
这应该不是问题。其他东西导致错误。或者您对包含URL的location
变量有一些依赖。
答案 2 :(得分:1)
当开发人员使用查询字符串作为缓存对象的键时,我已经看到了这种问题。当查询字符串发生更改时,密钥不一样,缓存机制失败(由于另一个错误)。