2017-04-06 6 views
0

IE11とEdge(ただしChromeは除く)ではExtjs6がjsonDataを奇妙な方法でエンコードしています。 jsonDataパラメータの1つとして '8/17/2016 13:07:00'という文字列のPOSTを実行すると、 '\ u200e8 \ u200e/\ u200e17 \ u200e/\ u200e2016 13:リクエストの本文に「07:00」と表示されます。Ext PostはIE11の文字を変換します

Ext.JSON.encode( '8/17/2016 13:07:00')をコンソールに入力すると、同じ方法で文字列が変換されることに気付きました。 ExtjsがIEのエンコーダを使用していると思われます(Chromeが動作しているので)。これはIEの問題でExtjsの問題ではありません。なぜこれが起こり、私のPOSTのために不適切に変換されないフォーマットがあるのか​​説明してください。

+0

Ext.JSON.encode()の代わりにExt.encode()をエンコーディングに使用してください。 – Tejas

+0

私は犯人を見つけましたが、私はそれを修正する方法がわかりません。 Ext.encode(new Date( '2016-08-17T06:37:00')。toLocaleDateString()) は、\ u200e8 \ u200e/\ u200e17 \ u200e/\ u200e2016 ""になります。特殊文字なしでこれをどのようにエンコードするのですか? – Jon

+0

残念ですが、Ext.encode(new Date( '2016-08-17T06:37:00')。toLocaleDateString())の結果は何ですか? – Tejas

答えて

0

私の思う限りここには簡単な間違いがあります。

Ext.JSON.encode("8/17/2016 13:07:00") 

代わりの

Ext.JSON.encode('8/17/2016 13:07:00') 

それはあなたがしたい文字列としてそれを取るを行います。

さらにもう1つ、この問題は最新のクロムバージョンにもなります。

+0

このチップをありがとう。これは、Ext.Ajax.request POSTをどのようにしてデータを変換するのではなく文字列形式に保つかという根本的な問題を私に残しています。 – Jon

0

私は問題がtoLocaleDateStringである発見したら()、その後、私は質問に答え、この記事を見つけました: ToLocaleDateString() changes in IE11

代わりのExt.encode(新しい日付( '2016-08-17T06:00:37 '))。toLocaleDateString())を使用すると、Ext.encode(new Date(' 2016-08-17T06:37:00 '))を使用できます。

関連する問題