只有在某些情况下,我才会出现此错误调用和XPage
java.lang.illegalArgumentException: Cookie name "some name" is a reserved token
可能是什么原因?如何解决这个问题?
更新
这是error-log-0.xml
<values>java.lang.IllegalArgumentException: Cookie name "Urbanistica e
Verde&count" is a reserved token
	at java.lang.Throwable.<init>
(Throwable.java:67)
	at javax.servlet.http.Cookie.<init>
(Cookie.java:128)
	at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.parseCookieString (XspCmdHttpServletRequest.java:338)
	at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.getCookies(XspCmdHttpServletRequest.java:269)
	at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.readSessionId(XspCmdHttpServletRequest.java:171)
	at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.<init>(XspCmdHttpServletRequest.java:142)
	at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:256)
</values>
更新2
XSP在afterPageLoad
事件中有这个SSJS
var cgi = new CGIVariables();
var exCon = facesContext.getExternalContext();
var response = exCon.getResponse();
response.setHeader("cache-control", "no-cache");
response.setDateHeader("Expires", -1);
com.xxx.MyClass.myMethod(
facesContext.getExternalContext().getRequest(),
response
);
facesContext.responseComplete();
CGIVariables
是Server Javascript函数(请参阅here),但实际上并未使用。
在myMethod
MyClass
内,我没有设置Cookie。可能是CGIVariables
函数中的问题?
更新3 我已经制作了一些有关交通网络(使用IE开发工具)的截图。 这里的要求是:
此处有关请求的详细信息:
这里有关于发送cookie的详细信息(如您所见,没有带保留名称的cookie,字符串Urbanistica e Verde
位于其中一个cookie的值中 - &gt;看红线)
更新4
问题似乎与the cookie value
有关,而与the cookie name
无关。删除cookie值中的','字符可以解决问题
答案 0 :(得分:1)
基本上,您使用的是非法名称。
来自this website,
The name must conform to RFC 2965. That means it can contain only ASCII alphanumeric characters and
cannot contain commas, semicolons, or **white space** or begin with a $ character.
还有其他字符无法使用。