2017-11-20 3 views
0

にmaxJsonLengthプロパティを参照しています:は、jQueryのAjaxのは、検索ボタンをクリックしてWebサービスから、私は(実際には文字列)をJSONデータをロードするためにjQueryのAJAXを使用して、私のASP.NETサイトではweb.configファイル

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(parameterArray), 
    contentType: "application/json", 
    dataType: "json", 
    success: function(response) { 
    d = JSON.parse(response.d); 
    } 

戻り文字列が大きすぎると、ページが応答を停止します。私はweb.configに行き、ウェブサイトが動作するためには、このプロパティを追加する必要があります。ここでは

<jsonSerialization maxJsonLength="2147483644"/> 

は、アプリケーションがブラウザにデータを返す前にsearch resultの取り扱いはどうすればよいです:

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
serializer.MaxJsonLength = Int32.MaxValue; 
string strData = dService.searhforData(ipt); 
List<Dictionary<string, object>> lRow = processData(strData); 
string r = serializer.Serialize(lRow); 
return r; 

場合Json文字列が長すぎる、ページが応答を停止するだけで、コンソールウィンドウにエラーはありませんでした。 .Netアプリケーション側でデバッグすると、serializer.Serialize(lRow);はスムーズに進み、rを正常に返します。その後、ページのローディングアイコンが回転し続けます。このページでF5キーを押すと、検索データが表示されます。

私の質問は、JQuery's Ajaxが最大json文字列の長さがweb.configの場合、インターネットでこれに関する情報が見つかりませんでしたか?

+0

いいえ、それは絶対にありません。代わりに、.net関連の設定のようです。 – 31piy

答えて

2

JSON.parse()が処理できるデータ量には限界がありますが、それはあなたの問題とは関係ありません。

web.configファイルには、使用する設定があります。サーバー側です。クライアント上のJSはまったく関連していません。この設定を修正する必要があるのは、ASP.Netコードが、既定の設定であるjsonSerializationで許可されていたよりも長いJSON応答を生成していたからです。

失敗したリクエストを行った後にブラウザのコンソールにチェックを入れた場合、問題の原因となった可能性のあるエラーが表示されます。

+0

強調表示_ "デフォルト設定" _ – Cerbrus

+0

ありがとうございました。ご質問ありがとうございました。 – EagerToLearn

+0

コンソールウィンドウにエラーがありませんでした。応答が停止し、F5キーを押すと結果が表示されます「通常のページリフレッシュ」の代わりに – EagerToLearn

関連する問題