1

以下の関数を呼び出す前に、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>
        ...
4

2 に答える 2

2

あなたが説明したことから、改行文字がそこにあるのではないかと思います。<cfdump var="...">ただし、結果のhtmlが表示されるため、単純なものでは表示できません。したがって、改行文字は1つのスペースとして表示されます。

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 
于 2012-05-18T02:51:27.160 に答える
1

何かが削除されているかどうかを確認する別の方法は、Fiddlerを実行し、proxyserver = "localhost" proxyport="8888"を呼び出しに追加することです。呼び出しはフィドラーを介してルーティングされ、そこからすべてのパラメーターを検査できます

于 2012-05-18T06:08:09.253 に答える