Я отправляю данные, используя этот код JavaScript:
xhr = new XMLHttpRequest();
xhr.addEventListener('readystatechange', onStateChange);
xhr.open('POST', 'SavePage');
xhr.setRequestHeader('RequestVerificationToken', token);
xhr.send(payload);
Затем в своем файле SavePage.cshtml я пытаюсь читать напрямую из тела разными способами, я получил Content-Length и знаю, что мои данные имеют длину 162 байта.
Я пробовал этот простой пример:
var buffer = new byte[1024];
var info = HttpContext.Request.Body.Read(buffer, 0, 5);
Код поступает во 2-й ряд, а затем просто зависает, во всех отношениях я пытаюсь код просто зависает. Если я пытаюсь прочитать из HttpContext.Request.Form, он также зависает.
Когда я проверяю Chrome, вот что публикуется:
------WebKitFormBoundary2uFNJ1OvmPRrGH1P
Content-Disposition: form-data; name="main-content"
<p>
test
</p>
------WebKitFormBoundary2uFNJ1OvmPRrGH1P--
Что мне здесь не хватает, если я не смогу просто читать с тела?
Или может быть, что не все тело было отправлено, но тогда почему я уже в коде?
Просто, к вашему сведению, я отправляю часть HTML-текста и просто хочу обработать его. Я подумал, что было бы легко просто прочитать с тела и справиться с этим сам. Но хотя я не новичок в c #, я настоящий новичок в ядре и в ОС, и особенно в сочетании ..
Я сейчас попытался заменить мой файл cshtml на ApiController:
[Route("api/[controller]")]
[ApiController]
public class SavePageController : ControllerBase
{
[HttpPost]
public void SavePage([FromBody] string htmlString)
{
// done what was posted is in htmlString argument
}
}
Но тогда я получу 400 Плохих Запросов? Я получил это, прежде чем я добавил RequestVerificationToken, но это отправляется? Не уверен, что не так?