ASP.NET CORE POST ENDPOINT Возвращает NULL DTO из JQUERY, но отлично работает от почтанаJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET CORE POST ENDPOINT Возвращает NULL DTO из JQUERY, но отлично работает от почтана

Сообщение Anonymous »

У меня есть конечная конечная точка API API ASP.net, которая получает все нулевые значения при вызываемом от jQuery/Browser, но работает отлично, когда вы вызываете от почтальона с той же той же полезной нагрузкой JSON. Бэкэнд. Однако, когда я отправляю один и тот же JSON от почтана, все значения получаются правильно.[HttpPost("create-book")]
public ObjectResult CreateBook([FromBody] CreateBookDto createBookDto)
{
try
{
var book = createBookDto.ToBook();
var createdBook = _servicesFactory.BookService.CreateBook(book);
return Ok(new BookDto().FromBook(createdBook));
}
catch (Exception ex)
{
return Fail(ex, "Error creating book");
}
}

код Frontend (TypeScript/jQuery)
public createBook(bookData: any, callback: Function) {
const json = typeof bookData === 'string'
? bookData
: JSON.stringify(bookData);

this.ajaxCall(
'api/book/create-book',
HttpMethods.POST,
json,
[callback],
ContentType.ApplicationJson,
null
);
}
< /code>
Что я проверил < /strong> < /p>
  • json верен и идентичен в обоих случаях < /p>
    < /li>
    Заголовки идентичны < /p>
    < /li>
    .-same Content-Type
    -same session cookie etc.
  • The response is 200 OK in both cases
  • Other POST endpoints in the same controller work fine from the browser (e.g., /api/book/property/update

I've added case insensitive option для startup.cs - на всякий случай services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
});
< /code>
Изменить: вот моя реализация AjaxCall < /p>
public ajaxCall(endpoint: string,
method: HttpMethods,
content: any,
callbacks: Array, contentType) {
var self = this;
$.ajax({
method: HttpMethods[method],
url: this._contextPath + endpoint,
contentType: contentType === ContentType.ApplicationFormUrlEncoded ? "application/x-www-form-urlencoded; charset=UTF-8" : "application/json; charset=utf-8",
data: content
})
.done(function (apiResponse, textStatus, jqXHR) {
if(!apiResponse.success && apiResponse.metadata && apiResponse.metadata.errorId){
self._errorObserver.errorReceived(apiResponse.metadata.message+ ":" + apiResponse.metadata.errorId)
} else {

for (let callback of callbacks) {
if (callback) {
callback(apiResponse);
}
}
}
})
.fail(function (msg) {
console.log('ajax call http error: ' + msg.status + ' ' + msg.statusText);
if (msg.status === 401) {
document.location.href = self._contextPath;
} else if (msg.status === 0) {
// call aborted (page was changed?)
} else {
//console.log('ajax communication error: ' + msg.status + ' ' + msg.statusText);
}
}).always(function () {});
}

Вот вызовы из Web и Postman

и JSON выглядит так:

и JSON выглядит так:

и JSON{
"ArtNr":"09764000",
"OnlineArtNr":null,
"AutorHrsg":"Ballreich",
"Titel":"Fallkommentar zum UmwandlungsR",
"AuflageNr":7,
"LegalRegulId":null,
"HerstellerId":null,
"BemerkProduktStufe":"Titel auf 2025 verschoben, Planung AE steht aus. HINWEIS: Autor schreibt bei 2 Werken mit | SCHWERDTFEGER geht vor |Info 25.01.2024: MS-Abgabe Schwerdtfeger erfolgt Mitte/Ende M..rz als h..ndische (!) Korrektur im Ausdruck (ca. 90 S.)",
"AktuelleDelays":0,
"CaDruckauflageVorabschaetzung":300,
"DruckauflageLVP":0,
"CaUmfangVorabschaetzung":500,
"UmfangIST":0,
"BemerkUebergMSChase":"MS-Bearbeitung und Kontaktaufnahme durch PE soll lt. AE erst nach Abschluss Projekt Schwerdtfeger erfolgen",
"DruckAnlManuDays":15,
"AuslieferungTermFix":null,
"Bruttopreis":null,
"Subspreis":null,
"SubspreisGueltBis":null,
"ProduktgruppeId":null,
"Bemerkung":null,
"ALAVerchicktAm":null,
"ReviewTermin":null,
"TemplateId":null,
"InhaltFarbeId":null,
"InhaltPapierId":null,
"LeinenmaterialId":null,
"PraegungId":null,
"PraegungFarbeId":null,
"Bemerkungen":null,
"AkAt":0,
"CE3":false,
"ContentFreeze":false,
"WorkInProgress":true,
"OutOfPlanning":false
}

edit 2:

Вот запросы, по запросу комментариев (в необработанном формате)
web:
curl 'http://localhost:8081/api/book/create-book' \
-H 'Accept: */*' \
-H 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json; charset=UTF-8' \
-b 'JSESSIONID=C4A0D7767F6C59F1C38D56BE1A9307AD' \
-H 'Origin: http://localhost:8081' \
-H 'Referer: http://localhost:8081/create' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'sec-ch-ua: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw $'{"ArtNr":"1621256","OnlineArtNr":null,"AutorHrsg":"Ballreich","Titel":"Fallkommentar zum UmwandlungsR","AuflageNr":7,"LegalRegulId":null,"HerstellerId":null,"BemerkProduktStufe":"Titel auf 2025 verschoben, Planung AE steht aus. HINWEIS: Autor schreibt bei 2 Werken mit | SCHWERDTFEGER geht vor |Info 25.01.2024: MS-Abgabe Schwerdtfeger erfolgt Mitte/Ende März als händische (\u0021) Korrektur im Ausdruck (ca. 90 S.)","AktuelleDelays":0,"CaDruckauflageVorabschaetzung":300,"DruckauflageLVP":0,"CaUmfangVorabschaetzung":500,"UmfangIST":0,"BemerkUebergMSChase":"MS-Bearbeitung und Kontaktaufnahme durch PE soll lt. AE erst nach Abschluss Projekt Schwerdtfeger erfolgen","DruckAnlManuDays":15,"AuslieferungTermFix":null,"Bruttopreis":null,"Subspreis":null,"SubspreisGueltBis":null,"ProduktgruppeId":null,"Bemerkung":null,"ALAVerchicktAm":null,"ReviewTermin":null,"TemplateId":null,"InhaltFarbeId":null,"InhaltPapierId":null,"LeinenmaterialId":null,"PraegungId":null,"PraegungFarbeId":null,"Bemerkungen":null,"AkAt":0,"CE3":false,"ContentFreeze":false,"WorkInProgress":true,"OutOfPlanning":false}'

почтальон:
curl --location 'http://localhost:5000/api/book/create-book' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"ArtNr":"09764000",
"OnlineArtNr":null,
"AutorHrsg":"Ballreich",
"Titel":"Fallkommentar zum UmwandlungsR",
"AuflageNr":7,
"LegalRegulId":null,
"HerstellerId":null,
"BemerkProduktStufe":"Titel auf 2025 verschoben, Planung AE steht aus. HINWEIS: Autor schreibt bei 2 Werken mit | SCHWERDTFEGER geht vor |Info 25.01.2024: MS-Abgabe Schwerdtfeger erfolgt Mitte/Ende M..rz als h..ndische (!) Korrektur im Ausdruck (ca. 90 S.)",
"AktuelleDelays":0,
"CaDruckauflageVorabschaetzung":300,
"DruckauflageLVP":0,
"CaUmfangVorabschaetzung":500,
"UmfangIST":0,
"BemerkUebergMSChase":"MS-Bearbeitung und Kontaktaufnahme durch PE soll lt. AE erst nach Abschluss Projekt Schwerdtfeger erfolgen",
"DruckAnlManuDays":15,
"AuslieferungTermFix":null,
"Bruttopreis":null,
"Subspreis":null,
"SubspreisGueltBis":null,
"ProduktgruppeId":null,
"Bemerkung":null,
"ALAVerchicktAm":null,
"ReviewTermin":null,
"TemplateId":null,
"InhaltFarbeId":null,
"InhaltPapierId":null,
"LeinenmaterialId":null,
"PraegungId":null,
"PraegungFarbeId":null,
"Bemerkungen":null,
"AkAt":0,
"CE3":false,
"ContentFreeze":false,
"WorkInProgress":true,
"OutOfPlanning":false
}'}'

Рабочий запрос на свойство/обновление (как пример)
curl 'http://localhost:8081/api/book/property/update' \
-H 'Accept: */*' \
-H 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json; charset=UTF-8' \
-b 'JSESSIONID=C4A0D7767F6C59F1C38D56BE1A9307AD' \
-H 'Origin: http://localhost:8081' \
-H 'Referer: http://localhost:8081/p1' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'sec-ch-ua: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
--data-raw '{"bookId":"1","property":"Book.BM","value":"118","propertyType":"Single"}'


Подробнее здесь: https://stackoverflow.com/questions/796 ... -from-post
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ASP.NET CORE POST ENDPOINT Возвращает NULL DTO из JQUERY, но отлично работает от почтана
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему Http Post в веб-приложении Orchard Core asp net core возвращает неверный запрос
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Почему HTTP Post в Orchard Core ASP Net Core Web App Возвращает плохой запрос
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»