在调用下面的函数之前,text1
值已编码,即:
http://example/exampleProxy.cfc?returnFormat=plain&method=update&id=443&blah=something&text1=bob+bob2%0Abob
但是发送的请求已经删除了换行符,即
http://example/test/id=443&blah=something&text1=bob+bob2bob
功能:
<cffunction name="update" access="remote" output="yes" returntype="string">
<cfargument name="id" required="yes" type="string" />
<cfargument name="blah" required="yes" type="string" />
<cfargument name="text1" required="yes" type="string" />
<cfhttp url="#variables.cString#" method="PUT" timeout="#variables.HTTP_TIMEOUT#">
<cfhttpparam name="id" type="url" value="#arguments.id#">
<cfhttpparam name="blah" type="url" value="#arguments.blah#">
<cfhttpparam name="text1" type="url" value="#arguments.text1#">
</cfhttp>
...
答案 0 :(得分:2)
根据你的描述,我怀疑新的线条字符在那里。但是您无法通过简单的<cfdump var="...">
看到它,因为它会显示结果html。因此,任何新行字符都只显示为单个空格:
TEXT1: bob bob2 bob
您需要使用format="text"
或<pre>
标记。然后你应该在值中看到新的行字符:
<强>代码:强>
<cfdump var="#arguments#" format="text">
<pre>TEXT1: #arguments.text1#</pre>
<强>结果:强>
BLAH: something
ID: 443
TEXT1: bob bob2 <--- new line
bob
TEXT1: bob bob2 <--- new line
bob
我用CF9测试了你的代码,新的代码存在于函数内部和接收页面上。即CGI.QUERY_STRING
id=443&blah=something&text1=bob%20bob2%0Abob
答案 1 :(得分:1)
确认是否有任何内容被剥离的另一种方法是运行Fiddler并在您的呼叫中添加proxyserver =“localhost”proxyport =“8888”。呼叫将通过提琴手进行路由,您可以从那里检查所有参数