MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
POSTで128KB以上のJSONが受け取れない https://forums.mozillazine.jp/viewtopic.php?f=2&t=19590 |
ページ 1 / 1 |
作成者: | kee [ 2022年2月28日(月) 13:55 ] |
記事の件名: | POSTで128KB以上のJSONが受け取れない |
環境はWindows10, FireFox 97.0.1です。 FireFoxからPOSTでWeb APIにアクセスしたとき、そのレスポンスとして返しているJSONがおよそ128KBを超えるサイズになるとFireFoxがレスポンスに反応せず、待ち受けた状態のままとなりました。 おそらく128KB付近でサイズに制約があると思われますが、これ以上のサイズを受け取れるような設定をすればよろしいでしょうか? なお、それ以外の以下のブラウザーは大きなJSONでも問題なく受け取れることを確認しています。 ・Windows版Chrome ・Windows版Edge ・Mac OS版Safari ・Chrome Book版Chrome また、128KB以上のJSONでもGETの場合はレスポンスを受け取れることは確認しています。 ただし処理の関係でPOSTでアクセスしたい箇所であるため、POSTで回避する方法がないか、ご存じの方がいらっしゃったらご教示いただけると幸いです。 クライアント側処理は.NET 6版のBlazor WebAssembly、Web APIは.NET 6で作成しています。 |
作成者: | kee [ 2022年2月28日(月) 14:25 ] |
記事の件名: | Re: POSTで128KB以上のJSONが受け取れない |
ご参考までに、該当箇所のBlazorのソースとリクエストヘッダーです。 クライアント側 @if (hoge is null) { <p><em>Loading...</em></p> } else { <h1>Http Response</h1> <div>@hoge?.Length</div> } @code { private WeatherForecast[]? forecasts; private string? hoge = null; protected override async Task OnInitializedAsync() { var repsonse = await Http.PostAsJsonAsync<string>("WeatherForecast", ""); var fuga = await repsonse.Content.ReadFromJsonAsync<Dictionary<string,string>>(); hoge = fuga is null ? "" : fuga["hoge"]; } } --------------------------------------------------------------- サーバー側 [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { [HttpPost] public async Task<IActionResult> Post() { await Task.Delay(1000);//無駄に1秒待たせる dynamic r = Ok(new Dictionary<string, string> { { "hoge", new String('a', 135000) + "z" } }); return r; } } --------------------------------------------------------------- リクエストヘッダー POST /WeatherForecast HTTP/2 Host: localhost:44315 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0 Accept: */* Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate, br Referer: https://localhost:44315/fetchdata content-type: application/json; charset=utf-8 Origin: https://localhost:44315 Content-Length: 2 Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin |
作成者: | kee [ 2022年2月28日(月) 16:06 ] |
記事の件名: | Re: POSTで128KB以上のJSONが受け取れない |
たびたびで申し訳ありませんが、追記です。 サーバー側のソースは135000となってる部分を130000くらいにするとFireFoxで受け取れるようになります。 dynamic r = Ok(new Dictionary<string, string> { { "hoge", new String('a', 135000) + "z" } }); |
作成者: | EarlgreyTea [ 2022年2月28日(月) 21:07 ] |
記事の件名: | Re: POSTで128KB以上のJSONが受け取れない |
kee さん、EarlgreyTea と申します。 kee さんが書きました: FireFoxからPOSTでWeb APIにアクセスしたとき、そのレスポンスとして返しているJSONがおよそ128KBを超えるサイズになるとFireFoxがレスポンスに反応せず、待ち受けた状態のままとなりました。 これがお困りの症状の概要ですね。 ですが、 kee さんが書きました: クライアント側処理は.NET 6版のBlazor WebAssembly、Web APIは.NET 6で作成しています。 kee さんが書きました: ご参考までに、該当箇所のBlazorのソースとリクエストヘッダーです。 これって、①Blazor WebAssembly というフレームワークの Firefox サポートの話でしょうか、 ②Firefox の WebAssembly サポートの話でしょうか、 ③それとも Firefox の Web API 自体の話でしょうか。 そのあたりがさっぱりわからないのです。 問題の切り分けはできているでしょうか。 Blazor WebAssembly での話であれば、その関連の技術フォーラム?などで相談されたほうがいいと思います。 問題を理解するには再現確認を行わないといけませんが、「ご参考」程度の断片では第三者がそれを行うのは困難です。 そもそも開発環境も一から用意する必要があります。 |
作成者: | kee [ 2022年3月01日(火) 09:35 ] |
記事の件名: | Re: POSTで128KB以上のJSONが受け取れない |
EarlgreyTeaさん、ありがとうございます。 実際のところ、この事象がBlazorの固有現象なのかは判断ついていません。 なのでBlazorによらず、FireFoxで同様の事象をご存じの方がいないかお伺いしたいという意図でした。 この件についてはBlazorのサポートに聞いてみます。 ありがとうございました。 |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |