JSON.stringify(values)之后,出现以下错误:
警告: Parameters: Invalid chunk ignored.
2013-1-30 10:54:14 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:346)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2503)
at org.apache.catalina.connector.Request.getParameter(Request.java:1040)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at cn.kyinfo.webframe.filter.SecurityFilter.doFilter(SecurityFilter.java:131)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.kyinfo.webframe.filter.PermissionResetFilter.doFilter(PermissionResetFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.kyinfo.webframe.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:90)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.kyinfo.webframe.filter.EncodingFilter.doFilter(EncodingFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
解决方法:
仔细找了下资料,发现原来是编码问题,将数据再重新编码,搞定。如下:
encodeURIComponent(JSON.stringify(values));
encodeURIComponent 参考
定义和用法
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
语法
encodeURIComponent(URIstring)
返回值
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
相关推荐
1. **循环引用问题**:如果对象之间存在循环引用,则 `JSON.stringify` 会抛出错误。可以通过 `JSON.stringify(obj, replacer)` 中的 `replacer` 函数来避免这个问题。 2. **函数与符号的处理**:`JSON.stringify` ...
标题中的“JSON.stringify()报错:JSON未定义”是一个常见的JavaScript错误,通常出现在尝试使用`JSON.stringify()`方法但全局环境中没有定义JSON对象时。在浏览器环境中,JSON是默认支持的,但在某些旧版本的IE...
主要介绍了JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能,结合实例形式分析了JSON.parse()与JSON.stringify()方法实现深拷贝的相关实现技巧与操作注意事项,需要的朋友可以参考下
当对象中存在循环引用时,`JSON.stringify()`默认会抛出错误。为了处理这种情况,可以提供一个替换函数作为第二个参数,检测到循环引用时返回特定值。 ```javascript function replaceCircular(obj, cache = []) ...
jsp使用JSON.stringify()引用的json2.js
JSON.stringify 是 JavaScript 中用于将 JavaScript 对象转换成 JSON 字符串的一个关键方法。这个方法的主要目的是将非字符串数据类型,如对象、数组等,转换成字符串格式,以便于存储、传输或与服务器交换数据。 ...
JSON.stringify在使用时,IE6、7、8会存在兼容问题,需导入json2.js
处理IE6,7,360下 的JSON.stringify 无法使用问题;
json-stringify-safe, 在循环引用( 如 JSON.stringify ) 上,但不引发 json-stringify-safe类似 JSON.stringify,但不引发循环引用。用法采用与 JSON.stringify 相同的参数。var stringify = require('json-...
JavaScript 内置的 JSON.stringify 和 JSON.parse 方法,为开发者提供了便捷的JSON数据序列化和反序列化能力。本文将深入探讨这两个方法的工作原理、使用场景以及一些高级技巧。 JSON.stringify 和 JSON.parse 是 ...
JSON.stringify() 和 JSON.parse() 是JavaScript中用于处理JSON数据的两个关键函数,它们在JSON对象序列化和反序列化过程中起着至关重要的作用。 一、JSON.stringify() JSON.stringify() 的主要功能是将JavaScript...
解决JSON.stringify在使用时,IE6、7、8会存在兼容问题。
但是,需要特别注意的是,如果在项目中同时存在原生`JSON`对象和`json2.js`库中的`JSON`对象,有时会出现混淆,导致`json2.js`的`JSON.stringify()`方法被调用。为解决这个问题,可以将`json2.js`中的`JSON`对象改为...
在IE6、7下使用JSON.stringify()方法兼容JS脚本
在JavaScript中,JSON.stringify()函数是一个非常常用的工具,它用于将JavaScript值转换成JSON格式的字符串。然而,当处理包含日期对象(Date)的JavaScript对象时,JSON.stringify()并不按照我们期望的方式转换日期。...
之后使用JSON.stringify函数将person对象转换成了一个JSON字符串jsonString,并通过alert函数显示出来。 在使用JSON.parse和JSON.stringify时,还需要注意几个细节。首先,JSON字符串格式必须严格遵守JSON的标准,...
JSON.parse() 和 JSON.stringify() 是JavaScript中用于处理JSON数据的两个重要方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它们常被用于...
json-stringify-确定性 确定性版本的JSON.stringify() ,因此您可以从字符串化的结果中获得一致的哈希值。 与相似,但: 没有依赖关系。 尽量少。 更好的循环检测。 支持对不带.toJSON对象(例如RegExp )进行...