2017-07-26 9 views
0

Extjs 5.1.3を使用しています。私は、サーバー側からメディアタイプのリクエスト[application/json]エラー!リクエストボディがExtjs AjaxリクエストのJSONフォーマットの問題ではない

Ext.Ajax.request({ 
         method: 'POST', 
         url: appurl.fetchRuleDetails, 
         params: win.jsonData, 
         callback: function(option, success, response){ 
          }) 
        }) 

れたまま

{"root":{"countryId":"458","ruleId":"3386","ruleName":"Test1 \\","ruleType":"CELL_STORE","opType":"DETAILS"}} 

私はAJAXリクエストを作成していたままのparamsとポストの要求を持って、応答が

{ 
    "rules":[ 
    { 
     "countryId":"458", 
     "ruleId":"3386", 
     "ruleName":"Test1 \\", 
     "ruleType":"CELL_STORE", 
     "ruleParts":[ 
     { 
      "seq":"1", 
      "attrId":"6", 
      "attrName":"Store Type", 
      "op":"=", 
      "val":"dsafdaf", 
      "charType":"GLOBAL_CHAR" 
     } 
     ] 
    } 
    ], 
    "Status":{ 
    "StatusFlag":true, 
    "StatusCode":"SUCCESS", 
    "StatusMessage":"SUCCESS" 
    } 
} 

AS-しかし、Ajaxリクエストのコールバックに来ています機能、私たちはresponse.responseText as- メディアタイプを要求しています[application/json] Error!リクエストボディはJSON形式ではありません。

私の推測は、 "Test1 \"というルーラー名の値が原因です。 誰かが私に何かを逃して助けてもらえますか?

+0

これはExtに関連していないため、サーバーはJSONを読み取ることができないと応答しています。 –

答えて

1

エラーメッセージは、ExtJSエラーメッセージではありません。無効なJSONに関連ExtJSのエラーを受け取った場合、それは次のようになります。それはあなたがJSONとしてあなたの要求を送信することを期待するので

Uncaught Error: You're trying to decode an invalid JSON String: TestTest

私の最高の推測では、エラーメッセージがサーバーから来ることです。今はFormDataとして送信しています。あなたが最初に確認する必要がありますのでご注意ください、サーバ・クライアント通信に関する今後の質問については

Ext.Ajax.request({ 
    method: 'POST', 
    url: appurl.fetchRuleDetails, 
    jsonData: win.jsonData, 
    callback: function(option, success, response){ 
    }) 
}) 

:JSONとして要求を送信するには、jsonData設定で、あなたのオブジェクトを入れて、未定義params設定を残していますブラウザのネットワークタブにサーバーに送信するものと、サーバーからの応答が本当に何であるかを示します。

+0

返信いただきありがとうございます。実際には、私もchromeのレストクライアントアドオンを使ってリクエストとレスポンスをチェックしました...サーバはjsonフォーマットで正しく必要に応じてレスポンスを送信していますが、Ajaxリクエストのコールバック関数では、レスポンスレスポンスを受信して​​います。/json]エラー!リクエストボディはJSON形式ではありません。それは奇妙なものです。リクエストのparamsの中で、ruleNameを "Test1 \"から "Test1"に置き換えている場合、コールバックで対応する応答を正しく取得できます。だから私によれば、問題は特殊文字が使われているからです。私はなぜそれが起こっているのか分かりません。 – user1761116

+0

@ user1761116 [fiddle](https://fiddle.sencha.com/)を作成できますか? – Alexander

関連する問題