我有一个使用Flash 8和actionscript 2.0构建的网站。这连接到coldfusion 7服务器,为用户打印内容,如报告等。这已经工作了很多年了,但自从Flash Player更新以来,自15+发布以来,这种打印已停止工作,现在我得到以下内容错误
500
java.lang.IllegalArgumentException at coldfusion.filter.FormScope.parseQueryString(FormScope.java:283)at coldfusion.filter.FormScope.parsePostData(FormScope.java:255)at coldfusion.filter.FormScope.fillForm(FormScope.java:206)at coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:384) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33)at at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 在 coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:115) 在coldfusion.CfmServlet.service(CfmServlet.java:107)at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78) 在jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:259) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) 在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable(ThreadPool.java:428) 在jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
我试过了解决方案 Handling 500 JRun servlet in ColdFusion。这停止了屏幕上显示的错误,但我没有显示任何内容
以下代码是我调用coldfusion页面的方式
var xmlString:String = "<rootNode>";
// More xml
xmlString += "</rootNode>";
var xmlObj = new XML(xmlString);
xmlObj.contentType = "text/xml";
xmlObj.send( "https://domainname.com/printme.cfm", "_blank");
从测试中我注意到,如果我将xmlString设为空字符串,则上述错误会停止,但只要是任何文本,上面的错误就会重新出现
有没有人有任何想法, 谢谢
EDIT 这里要求的是ServiceCapture
的标题第一个来自FireFox使用flash player 15.0.0.233并给出500错误。 第二个是来自IE使用Flash播放器10.2.153.1并正确打印。 两者都访问同一个网站
我从ServiceCapture注意到的一件事是,当它工作时,xml文本列在请求端的“文本”选项卡中。当它不起作用时,xml显示在“参数”选项卡
中POST /printme.cfm HTTP/1.1
Host: domainname.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: CFID=8989; CFTOKEN=556456456456; JSESSIONID=4544545f93bea93a591513
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 2100
POST /printme.cfm HTTP/1.1
Accept: */*
Content-Type: text/xml
Accept-Language: en-gb
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: domainname.com
Content-Length: 2100
Cookie: CFID=23232; CFTOKEN=656565656; JSESSIONID=583078632234aa20506970
编辑2; 我注意到在第一个POST块中,content-Type被设置为“application / x-www-form-urlencoded” 这是默认值。出于某种原因,较新版本的flash播放器接缝忽略了行
xmlObj.contentType = "text/xml";
此外,如果我删除此行,则两个版本的播放器
都会出现500错误答案 0 :(得分:0)
原来,contentType&#34; text / xml&#34;已被弃用,较新版本的Flash播放器必须更严格地将其设置为有效值并将我的值更新为默认值。 一旦我将其更改为&#34; text / plain&#34;一切都开始了