我正在使用Grails 2.3.3
原型作为我的js库。
我有一个ajax调用,它将一些参数发送到要绑定到对象的服务器。
生成的ajax调用始终在参数列表的末尾附加&_:
。因此,不要使用此地图:[name:bar, action:save, controller:foo]
我得到[name:bar, _:, action:save, controller:foo]
(请注意_:
)
当我尝试做的时候
foo.properties = params
我收到以下错误(在foo.errors
上):
grails.validation.ValidationErrors: 1 errors
Error in object 'com.mypackage.Foo': codes []; arguments []; default message [String index out of range: 2]
End of error dump
如果我从参数地图中移除附加的_
键(使用params.remove('_')
),则不再有错误。
这里的问题是我的应用程序在Grails版本1.3.9上工作正常但是一旦我升级到2.3.3就停止工作。
升级原型库后,参数现在翻了一倍。
答案 0 :(得分:0)
我知道这已经过时了,但每当这件事发生时,我都会不断回到这个问题。
像Geek Num 88所说,更新PrototypeJS可以解决发送到服务器的额外下划线参数。
由于PrototypeProvider.groovy
中的错误,第二个问题正在发生,请参阅this pull request on github。
您必须找到通常在
下的PrototypeProvider.groovy
课程
<grails_home>/projects/<your_project>/plugins/prototype-1.0/src/groovy/grails/plugin/prototype/PrototypeProvider.groovy
或
<your project source directory>/target/plugins/prototype-1.0/src/groovy/grails/plugin/prototype/PrototypeProvider.groovy