Метод не разрешен. 405 не позволяет использовать методы post, поскольку методы get работают.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Метод не разрешен. 405 не позволяет использовать методы post, поскольку методы get работают.

Сообщение Anonymous »

Я создал веб-API в веб-API asp.net, поскольку все методы отлично работают на локальном компьютере, но

через сайт, где я разместил свой сайт на Vercel

когда я вызываю через это методы получения, но методы публикации не работают

поскольку

бэкенд API находится в моей системе

когда я звоню

Код: Выделить всё

const onCreateCustomer = async (event) => {
event.preventDefault();

//setLoading(true);
setError(null);

const formData = new FormData();
formData.append("name", customer.c_name);
formData.append("email", customer.c_email);
formData.append("password", customer.c_password);
formData.append("phone", customer.phoneno);
formData.append("address", customer.address);
formData.append("disease", customer.disease);

if (lat !== null && lon !== null) {
formData.append("latitude", lat);
formData.append("longitude", lon);
}

try {
const response = await fetch(
`https://www.quettacafe.com/FoodDeliverySystems/api/customer/signup`,
{
method: "POST",
body: formData,
headers: {
Accept: "*/*",
},
}
);

if (!response.ok) {
const errorData = await response.json();
throw new Error(
errorData.message || `HTTP error! Status: ${response.status}`
);
}

const data = await response.json();
console.log("Signup response:", data);

const latestCustomer = await fetchLatestCustomer(lat, lon);

navigate("/LoginCustomer");
} catch (error) {
console.error("Signup error:", error);
setError(error.message);
} finally {
setLoading(false);
}
};

и моя функция веб-API (C#)

Код: Выделить всё

  [HttpPost]
public HttpResponseMessage Signup()
{
try
{
var httpRequest = HttpContext.Current.Request;

// Retrieve form data
var name = httpRequest.Form["name"];
var email = httpRequest.Form["email"];
var password = httpRequest.Form["password"];
var phone = httpRequest.Form["phone"];
var address = httpRequest.Form["address"];
var latitude = httpRequest.Form["latitude"];
var longitude = httpRequest.Form["longitude"];
var disease = httpRequest.Form["disease"];

var account = db.customer.Where(s => s.email == email).FirstOrDefault();
if (account != null)
{
return Request.CreateResponse(HttpStatusCode.OK, "Already exists");
}
else
{
customer cus = new customer()
{
name = name,
email = email,
password = password,
phone = phone,
address = address,
disease=disease
};
db.customer.Add(cus);
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.Created, cus);
}
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
}
}
коры включены
Я добавил строку, включающую коры
POST https://www. quettacafe.com/FoodDeliverySystems/api/customer/signup 405 (Метод не разрешен)
мой маршрут настроен правильно, вот мой маршрут.config

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace Fooddeliverysystems
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}

Код: Выделить всё

  [EnableCors(origins: "*", headers: "*", methods: "*")]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using System.Web.Http.Cors;

namespace Fooddeliverysystems
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services

// Web API routes
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
Я пытался заставить метод post работать

я пытался добавлять заголовки

как из внешнего, так и из внутреннего интерфейса

Я изменил URL-адрес на http localhost

он работает локально на локальном веб-сайте

но с моего домена www.quettacafe.com он не работает

другие мои методы get работают правильно

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Метод не разрешен. 405 не позволяет использовать методы post, поскольку методы get работают.
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • 405 Метод не разрешен: GET не разрешен
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • 405 Метод не разрешен: GET не разрешен
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: метод не разрешен (POST): «POST/HTTP/1.1» 405 0
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: метод не разрешен (post): «post / http / 1.1» 405 0
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

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