Как к данным POST к ASP.NET HttpHandler?

Подумайте о включении вашей функции вручную в цикл for. Если эта функция вызывается в нескольких циклах, определите ее как макрос:

#define f()\
printf("a: %d", a);\
break;
13
задан Ali Kazmi 26 May 2009 в 05:03
поделиться

5 ответов

Наличие некоторого кода для просмотра поможет диагностировать проблему. Вы пробовали что-то подобное?

Код jQuery:

$.post('test.ashx', 
       {key1: 'value1', key2: 'value2'}, 
       function(){alert('Complete!');});

Затем в методе ProcessRequest () вы должны иметь возможность:

string key1 = context.Request.Form["key1"]; 

Вы также можете проверить тип запроса в ProcessRequest () для устранения проблемы.

if(context.Request.RequestType == "POST")
{
    // Request should have been sent successfully
}
else
{
    // Request was sent incorrectly somehow
}
11
ответ дан 1 December 2019 в 23:32
поделиться

Данные POST, которые вы отправляете своему обработчику HTTP, должны быть в формате строки запроса a = b & c = d . И вы можете получить его на стороне сервера, используя Request ["a"] (вернет b ) и так далее.

1
ответ дан 1 December 2019 в 23:32
поделиться

У меня была такая же проблема, и в конце концов я понял, что проблема в установке типа содержимого как "json"...

contentType: "application/json; charset=utf-8"

Это строка, которую некоторые популярные учебники предлагают добавить в вызов $ajax, и она хорошо работает с ASPx WebServices, но почему-то не работает для HttpHandler, использующего POST.

Трудно уловить, поскольку значения в строке запроса работают нормально (еще один прием, встречающийся в вебе, хотя использовать POST для этого не имеет особого смысла).

2
ответ дан 1 December 2019 в 23:32
поделиться

У меня тоже была такая же проблема. Это была проблема клиента / AJAX. Мне пришлось установить заголовок запроса вызова AJAX ContentType на

application/x-www-form-urlencoded

, чтобы он работал.

2
ответ дан 1 December 2019 в 23:32
поделиться

Сталкивался с похожей проблемой. После исправления всех ошибок я пропустил еще одну вещь в web.config — изменить глагол как * ИЛИ GET,POST. После этого все работало нормально.

<httpHandlers>
    ...
    <add verb="*" path="test.ashx" type="Handlers.TestHandler"/>
</httpHandlers>
1
ответ дан 1 December 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: