Как ссылаться на данные, отправленные xmlHttpRequest в общий обработчик c #? - PullRequest
0 голосов
/ 10 октября 2019

При выполнении вызова Ajax с использованием jquery я обычно объявляю объект данных для отправки в параметре данных jQuery ajax ():

var data = { "one": "1:, "two": "2", ... }

.ajax({
    url: "myHandler.ashx", 
    data: data,
    ...
})

Мой общий обработчик C # может затем ссылаться на эти данные как частьколлекция Params []:

string One = context.Request.Params["One"]; // "1"
string Two = context.Request.Params["Two"]; // "2"

Однако в этом проекте мне необходимо использовать сам объект XMLHttpRequest. Итак, я построил следующее (отредактировано для краткости):

var xhr = new XMLHttpRequest();

xhr.open(data.Type, data.Handler, true);
xhr.setRequestHeader('Content-Type', 'application/json');

xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
        if (xhr.status == 200) {
            // do something with "xhr.response";
        }
    }
}

xhr.send(JSON.stringify(data));

Проблема в том, что данные отправляются без имени. Итак, в моем C # универсальном обработчике я не знаю, о чем просить. context.Request.Params["One"] является нулевым или пустым. Я сбросил всю коллекцию Params [] в окно отладки и нигде не вижу. То же самое для всей коллекции Request [].

Я не могу найти строковые данные JSON, которые были отправлены в вызове xhr.send ().

Итак, вопрос в том, как сделать ссылку в моем универсальном обработчике C #к данным, которые были отправлены в xhr.send(JSON.stringify(data)) вызове?

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