ورود

View Full Version : مشکل Post به Web API در Web App Core



shahab_ksh
چهارشنبه 09 شهریور 1401, 17:40 عصر
با سلام

در حالت GET مشکلی در اتصال به Web API وجود نداره اما در حالت Post ارور 400 میگیرم




@page
@using DevExtremeAspNetCoreApp1.Models


@Html.AntiForgeryToken()

$.ajax({
type: "POST",
url: 'api/editoropen',
data: {'guid':'wr'}
contentType: "application/json",
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
success: function (data) {
alert('post successs');
},done:function (response) {
alert('ok');
},
dataType: 'json',
});





در Program.cs هم این کد ها رو زدم اما جوابی نگرفتم


builder.Services
.AddRazorPages().AddRazorPagesOptions(o =>
{
o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});


builder.Services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");

mmbguide
جمعه 11 شهریور 1401, 12:46 عصر
سلام


با توجه به اینکه در program نام کوکی را XSRF-TOKEN تعریف کردید بنابراین در زمان ارسال هم باید در خط 12 از دستورات Ajax بجای RequestVerificationToken از XSRF-TOKEN استفاده کنید.



headers: { "XSRF-TOKEN": $('input[name="__RequestVerificationToken"]').val() },


امتحان کنید ببینید مشکل حل میشه

shahab_ksh
جمعه 11 شهریور 1401, 19:29 عصر
این مورد هم جواب نداد

من دو پروژه در یک سلوشن درست کردم یکی Web API و دیگری RazorPages

در RazorPages پروژه Web API رو رفرنس کردم

و در یک صفحه RazorPages از طریق Ajax به کنتروار وصل شدم برای GET هیچ مشکلی وجود نداره
اما برای عمل Post وقتی داده می فرستم ارور 400 میده بدین معنی که فراخوانی Web API پارامترهای ورودی را ندارد !

و این یک مشکل است نهایتا مجبور شدم داده را از طریق QueryString به همراه URL بفرستم.

آیا راهی به نظرتون میرسه ؟

ghossein
جمعه 18 شهریور 1401, 11:22 صبح
سلام ، آدرس دهی رو بررسی کردید اگر ارور ۴۰۰ میده مربوط به آدرس دهی هست یه breakpoint بزارید ببنید وارد متد میشه یا نه