В Internet Explorer существует ограничение на количество сообщений: 3926Как я могу обойти это? - PullRequest
0 голосов
/ 10 февраля 2011

Я исправляю эту ошибку уже 12 часов, и думаю, что я сузил ее до этого.

Если я предоставлю метод post, будь то объект json или строка, IE будетразрешить что-либо до ~ 3926 символов.Ничего другого, независимо от того, в какую форму или размер он входит. Это так долго, как его передают так:

<form method="post" action="/generate_csv.csv?calc[][amount_paid]=0.0&amp;calc[][date_awarded]=02%2F02%2F1981&amp;calc[][date_paid]=12%2F31%2F1981&amp;calc[][interest_rate]=12.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=0.912328767123288&amp;calc[][total_interest]=214.14&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1982&amp;calc[][date_paid]=12%2F31%2F1982&amp;calc[][interest_rate]=12.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=234.72&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1983&amp;calc[][date_paid]=12%2F31%2F1983&amp;calc[][interest_rate]=12.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=234.72&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1984&amp;calc[][date_paid]=12%2F31%2F1984&amp;calc[][interest_rate]=12.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=235.36&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1985&amp;calc[][date_paid]=12%2F31%2F1985&amp;calc[][interest_rate]=12.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=234.72&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1986&amp;calc[][date_paid]=12%2F31%2F1986&amp;calc[][interest_rate]=9.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=185.82&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1987&amp;calc[][date_paid]=12%2F31%2F1987&amp;calc[][interest_rate]=7.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=146.7&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1988&amp;calc[][date_paid]=12%2F31%2F1988&amp;calc[][interest_rate]=6.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=117.68&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1989&amp;calc[][date_paid]=12%2F31%2F1989&amp;calc[][interest_rate]=7.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=136.92&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1990&amp;calc[][date_paid]=12%2F31%2F1990&amp;calc[][interest_rate]=8.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=156.48&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1991&amp;calc[][date_paid]=12%2F31%2F1991&amp;calc[][interest_rate]=8.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=166.26&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1992&amp;calc[][date_paid]=12%2F31%2F1992&amp;calc[][interest_rate]=7.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=147.1&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1993&amp;calc[][date_paid]=12%2F31%2F1993&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=107.58&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1994&amp;calc[][date_paid]=12%2F31%2F1994&amp;calc[][interest_rate]=3.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=68.46&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1995&amp;calc[][date_paid]=12%2F31%2F1995&amp;calc[][interest_rate]=3.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=68.46&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1996&amp;calc[][date_paid]=12%2F31%2F1996&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=107.87&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1997&amp;calc[][date_paid]=12%2F31%2F1997&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=107.58&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1998&amp;calc[][date_paid]=12%2F31%2F1998&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=107.58&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F1999&amp;calc[][date_paid]=12%2F31%2F1999&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=107.58&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2000&amp;calc[][date_paid]=12%2F31%2F2000&amp;calc[][interest_rate]=5.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=98.07&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2001&amp;calc[][date_paid]=12%2F31%2F2001&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=107.58&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2002&amp;calc[][date_paid]=12%2F31%2F2002&amp;calc[][interest_rate]=6.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=117.36&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2003&amp;calc[][date_paid]=12%2F31%2F2003&amp;calc[][interest_rate]=3.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=58.68&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2004&amp;calc[][date_paid]=12%2F31%2F2004&amp;calc[][interest_rate]=2.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=39.23&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2005&amp;calc[][date_paid]=12%2F31%2F2005&amp;calc[][interest_rate]=1.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=19.56&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2006&amp;calc[][date_paid]=12%2F31%2F2006&amp;calc[][interest_rate]=2.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=39.12&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2007&amp;calc[][date_paid]=12%2F31%2F2007&amp;calc[][interest_rate]=4.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=78.24&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2008&amp;calc[][date_paid]=12%2F31%2F2008&amp;calc[][interest_rate]=5.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0027397260274&amp;calc[][total_interest]=107.87&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2009&amp;calc[][date_paid]=12%2F31%2F2009&amp;calc[][interest_rate]=4.0&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=78.24&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2010&amp;calc[][date_paid]=12%2F31%2F2010&amp;calc[][interest_rate]=1.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=1.0&amp;calc[][total_interest]=29.34&amp;calc[][amount_paid]=0.0&amp;calc[][date_awarded]=1%2F1%2F2011&amp;calc[][date_paid]=02%2F09%2F2011&amp;calc[][interest_rate]=0.5&amp;calc[][principal]=1955.96&amp;calc[][tf]=0.10958904109589&amp;calc[][total_interest]=1.07" accept-charset="UTF-8"><div style="margin: 0pt; padding: 0pt; display: inline;"><input type="hidden" value="✓" name="utf8"><input type="hidden" value="dbxrVZT2J42AB0QdMFi2XPggVGAQKtm8IkcuIj+U2jU=" name="authenticity_token"></div>

Во всех других браузерах это проходит с без проблем вообще,Но IE не потерпит этого прошлого до определенного момента.

Знает ли кто-нибудь , как я могу передать тот же объем данных небольшим и сжатым способом или даже альтернативным способом?

Альтернатива, я думал,может передавать псевдоним объекта, так что сам объект передается между контроллерами, но не через представления.Это делается без сохранения объекта в базе данных.Просто мысли вслух.

Открыт для любых идей.: D

Мой Хамл:

= form_tag generate_csv_path(:calc => @calc.results, :total_interest => @calc.total_interest, :per_diem => @calc.per_diem, :docket_num => @calc.docket_num, :our_file_num => @calc.our_file_num) do
  = submit_tag 'Print CSV', :id => "print_csv"

ОБНОВЛЕНИЕ

Поэтому я перебираю все элементы, пытаясь разбить их на более мелкие скрытыеполя и все они выглядят как хэши

- @calc.results.each do |k, v|
  = hidden_field :calc_result, "#{k[:total_interest]}"

Производит:

"117.68"=>"",
"166.26"=>"",
"147.1"=>"",
"107.58"=>"",
"58.68"=>"",

Так невероятно странно ... Я подумал, что смогу со временем создать значение в виде хэша.Так что в 1 calc_result может быть 5 разных атрибутов.

1 Ответ

7 голосов
/ 10 февраля 2011

Размещать данные как тело , а не как часть URL.

URL имеют ограничение по длине.Данные, помещенные в тело формы, не имеют ограничений как таковые, поскольку они являются частью заголовка (не URL)

http://support.microsoft.com/kb/208427

ОБНОВЛЕНИЕ (в ответ на ваш комментарий) Данные как часть формытело ...

<form method="post" action="/generate_csv.csv">
 <input type="hidden" name="calc[][amount_paid]" value="0.0"/>
 ... //other fields here
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...