在Grails3中,ASCII字符被转换(附加)为任意字符
我在grails 3应用程序中提交了一个值“02AP0040”,当表单通过ajax提交时,控制器中的值不会改变,但当表单正常提交时,该值会更改为“02AP0040””。我已将application.yml中的mime类型,form:application/x-www-form-urlencoded更改为form:multipart/form data配置文件(application.yml)的一部分如下:在Grails3中,ASCII字符被转换(附加)为任意字符,grails,configuration,ascii,Grails,Configuration,Ascii,我在grails 3应用程序中提交了一个值“02AP0040”,当表单通过ajax提交时,控制器中的值不会改变,但当表单正常提交时,该值会更改为“02AP0040””。我已将application.yml中的mime类型,form:application/x-www-form-urlencoded更改为form:multipart/form data配置文件(application.yml)的一部分如下: grails: applicationVersion: '@info.app.versio
grails:
applicationVersion: '@info.app.version@'
mime:
disable:
accept:
header:
userAgents:
- Gecko
- WebKit
- Presto
- Trident
types:
all: '*/*'
atom: application/atom+xml
css: text/css
csv: text/csv
form: multipart/form-data
html:
- text/html
- application/xhtml+xml
js: text/javascript
json:
- application/json
- text/json
multipartForm: multipart/form-data
pdf: application/pdf
rss: application/rss+xml
text: text/plain
hal:
- application/hal+json
- application/hal+xml
xml:
- text/xml
- application/xml
file.extensions: true
use.accept.header: false
urlmapping:
cache:
maxsize: 1000
controllers:
upload:
maxFileSize: 2097152 #2MB
maxRequestSize: 2097152 #2MB
defaultScope: prototype
converters:
encoding: UTF-8
views:
default:
codec: none
gsp:
encoding: UTF-8
htmlcodec: xml
codecs:
expression: none
scriptlets: html
taglib: none
staticparts: none
提交表单也向控制器提交了正确的值,但当涉及到控制器时,该值被更改。我发现一个解决方案可能不是完美的,但解决了我的问题 我已将enctype属性添加到每个提交此类ascii字符的表单中,如
。我试图更改application.yml中的mime类型,但没有成功,所以我在主页中使用javascript将enctype添加到当前解决该问题的每个表单中
我发现,即使方法是post,默认的表单enctype是application/x-www-form-urlencoded,它将请求主体视为查询参数,因此对ascii字符进行编码/转义,因此为了传输此类字符,我们必须将enctype用作不编码内容的多部分/表单数据