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

Место общения программистов C#
Ответить Пред. темаСлед. тема
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 » » в форуме Javascript
    0 Ответы
    6 Просмотры
    Последнее сообщение 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 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

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