Ajax-вызов с использованием большого значения строки запроса завершается неудачно - PullRequest
0 голосов
/ 13 ноября 2009

У меня Ajax-вызов с использованием диспетчера сценариев asp.net. Который за сценой берет данные и добавляет их в URL как строку запроса и выполняет вызов get. Но когда эти данные очень большие, они терпят неудачу.

Я думаю, что если я смогу увеличить максимальную ширину строки запроса, это будет решением. Как я могу изменить размер maxquerystring в asp.net.

Также ошибка не связана с ограничением браузера, поскольку она генерируется сервером.

Служба - это служба WCF, доступная для ajax.

Ошибка

    Exception Type: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]
Exception: Buffer cannot be null.
Parameter name: buffer
Source: DefaultPage
Stack Trace: 

Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Так что здесь он формирует URL как http://site/ajax.svc?data=xxxxxxxxxxxxxxxxxxxx

Большое значение означает, что длина составляет около 1000 символов.

Где я могу установить максимально допустимый размер URL-адреса или что-то подобное.

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

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Вы можете использовать $ .POST

2 голосов
/ 14 ноября 2009

Максимальная длина строки запроса не может быть установлена ​​программно, она определяется веб-сервером и браузером, которые участвуют в запросе.

Проверьте раздел «Проблемы совместимости» записи в Википедии, чтобы узнать подробности и ссылки на дополнительные ресурсы.

http://en.wikipedia.org/wiki/Query_string

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...