دسته بندی ها
17:47 1403/06/05

خطای put status code : 405 method not allowed هنگام Update

مشخصات سوال کننده :
کاربر : Mostafahemat     امتیاز کاربر : 5     رتبه کاربر : 110
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 917
3 نظر
saedbfd : دلیل اینکه پروژتون رو روی دو سرور مجزا قرار دادید چی هست ؟

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 08:48 1403/06/06
Mostafahemat : سلام دقیق تر بخوام بگم. هر دو پروژه روی یک سرور با پرت های مختلف 9595 و 7575 پابلیش شده و سرور دیتابیس جدا میباشد. دلیل این امر هم پشتیبانی نکردن سرور داده از core 7 میباشد

امتیاز کاربر : 5   رتبه کاربر : 110   تاریخ ثبت : 05:57 1403/06/06
Mostafahemat : مرورگر هم در سربرگ network --- header -- به صورت زیر پیام میده... request: http//192.168.89.25:7575 request method: put status code:405 method not allowed referres policy: strict-origin-then-cross-origin

امتیاز کاربر : 5   رتبه کاربر : 110   تاریخ ثبت : 06:17 1403/06/06
ادامه نظرات ...
پاسخ دهنده : fateme 08:56 1403/06/06

دوست گرامی شما بهتره کدهایی هم که نوشتید به طور خلاصه قرار بدید. اگر شما پروژتون به صورت api هست و از پروژه فرانت به سمت پروژه بک اند request ارسال میشه باید یک نکته رو دقت کنید.

آیا در پروژه بک اند از Authorize استفاده کردید ؟؟ در این صورت باید یک توکن حاوی Authorize هم همراه درخواست ارسال کنید :

$.ajax({
    type: 'Post',
    url: 'yourUrl',
    headers: { 'Authorization': $("#token").html().trim() },
    dataType: 'json',
    success: function (xhr) {
        if (xhr.statusCode == '200') {
            alert('موفق');
        }
    }
})

در دستور بالا توکن هم ارسال شده. این توکن وقتی شما لاگین می کنید باید از سمت سرور دریافت بشه و هر جا قصد ارسال درخواست داشتید مجددا به سمت سرور ارسال بشه.

ویرایش شده در سه شنبه 6 شهریور 1403 ساعت 21:32:13
به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
4 نظر
Mostafahemat : بنده این کار رو کردم. تمام پروژه دارای دسترسی میباشد و همه درخواست ها به همراه توکن ارسال میشه. بخوام دقیق تر بگم دستوراتی که به صورت post ارسال میشه درست کارمیکنه. که این دست از دستورات برای add کردن داده ها در پروژه استفاده میشه. اما در دستوراتی که به صورت put برای آپدیت داده های قبلی استفاده میشه خطای 504 میده.

امتیاز کاربر : 5   رتبه کاربر : 110   تاریخ ثبت : 06:02 1403/06/06
fateme : شما برای دستورات Update هم از همون Post استفاده کنید. فکر نمیکنم مشکلی داشته باشه. تست کنید نتیجه رو بفرمایید.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 09:28 1403/06/06
Mostafahemat : سلام دمتون گرم. مشکل حل شد. طبق فرمایش شما فقط کافی بود به جای Put از Post استفاده کنم. فقط یک سوال: آیا میشه همیشه و همه جا این جایگزینی رو انجام داد و اگر میشه پس چه تفاوتی در Put و Post هست؟

امتیاز کاربر : 5   رتبه کاربر : 110   تاریخ ثبت : 04:17 1403/06/07
fateme : بله شما میتونید در اکثر موارد از Post استفاده کنید. دقت کنید خود Put یک مشتق از Post هست.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 09:43 1403/06/08
ادامه نظرات ...
پاسخ دهنده : pedram_khan 21:36 1403/06/06

احتمالا در دستورات ajax فیلد content-Type رو مقدار ندادید یا اشتباه مقدار دادید. 

$.ajax({
    type: 'Put',
    url: 'yourUrl',
    headers: { 'Authorization': $("#token").html().trim() },
    contentType: "application/json; charset=utf-8",
    dataType: 'json',
    success: function (xhr) {
        if (xhr.statusCode == '200') {
            alert('موفق');
        }
    }
})

 

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
1 نظر
Mostafahemat : سلام مشکل حل شد. طبق فرمایش کاربر fateme فقط کافی بود به جای Put از Post استفاده کنم. تشکر

امتیاز کاربر : 5   رتبه کاربر : 110   تاریخ ثبت : 07:00 1403/06/08
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود