在flash player更新后,使用actionscript Xml.send()到coldfusion 7停止工作

时间:2014-11-20 15:12:43

标签: coldfusion actionscript flash

我有一个使用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错误

1 个答案:

答案 0 :(得分:0)

原来,contentType&#34; text / xml&#34;已被弃用,较新版本的Flash播放器必须更严格地将其设置为有效值并将我的值更新为默认值。 一旦我将其更改为&#34; text / plain&#34;一切都开始了