最近将一个项目部署到生产中并且遇到了“无效的回发或回调参数”错误。我们在测试中没有遇到这种情况,经过一些研究发现问题出现在以下情况:
已调用的客户端的修复方法是清除其临时Internet文件,但这不是理想的修复方法。任何人都可以想到为什么会发生这种情况并在临时文件被清除后停止发生?
顺便说一句:该应用程序是用C#编写的ASP.NET 3.5。我们在这个导致此问题的特定控件中使用了javascript回调。
答案 0 :(得分:0)
由于您提到您正在使用javascript回调,这可能与事件验证有关。如果是这样,那么该问题的解决方法是将以下行添加到web.config:
<pages enableEventValidation="false"/>
这样,您的页面就会禁用事件验证。出于安全原因,不建议将其关闭,因为它会验证参数是否由服务器控件生成。
您可以获取有关此错误发生原因的详细信息here。
答案 1 :(得分:0)
我们不想使用“enableEventValidation = false”技巧,因为这不是一个一致的问题。从很早开始,我们就可以通过清除临时文件来逐个解决问题。
今天看了一些之后,有人建议我们重命名我们的js文件,看看问题是在本地解决的。似乎每个用户都存储了旧的js文件。
至于它为什么抛出“无效的回发”而不是javascript错误,我们不确定。还有其他方法可以在脚本标记中指定版本号,但是现在我们选择了重命名。