【发布时间】:2021-08-27 03:24:32
【问题描述】:
我正在尝试使用行上的 id 来删除行。当我在本地服务器上执行它时,它工作正常,但在 plesk 服务器上出现错误。 请求 CREATE 和 GET 正常工作,但 DELETE 和 UPDATE 不工作。
函数删除:
onDeleteConfirmation(e) {
e.preventDefault();
const { id } = this.props.match.params;
axios.delete("api/Trips/DeleteTrip/" + id).then(result => {
this.props.history.push('/Trips')
});
}
功能更新:
onUpdateConfirmation(e) {
e.preventDefault();
const { id } = this.props.match.params;
let tripObject = {
name: this.state.name,
description: this.state.description,
dateStarted: this.state.dateStarted,
dateComplated: this.state.dateComplated
}
axios.put("api/Trips/UpdateTrip/"+id, tripObject).then(result => {
this.props.history.push('/Trips')
});
}
控制器服务:
[HttpDelete("DeleteTrip/{id}")]
public IActionResult DeleteTrip(int id)
{
_service.DeleteTrip(id);
return Ok();
}
. 我在视觉标准输出中使用 ASP.Net Core 3 和 React。 当我尝试在在线服务器 Plesk 上执行时,我的问题就出现了。
这是完整的控制器:
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Trips.Data.Models;
using Trips.Data.Services;
namespace Trips.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TripsController : ControllerBase
{
public ITripService _service { get; set; }
public TripsController(ITripService service)
{
_service = service;
}
[EnableCors("AnotherPolicy")]
[HttpGet("GetTrips")]
public IActionResult GetTrips()
{
try
{
//throw new Exception();
var allTrips = _service.GetAllTrips();
return Ok(allTrips);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[EnableCors("AnotherPolicy")]
[HttpGet("SingleTrip/{id}")]
public IActionResult GetTripById(int id)
{
var trip = _service.GetTripById(id);
return Ok(trip);
}
[EnableCors("AnotherPolicy")]
[HttpPost("AddTrip")]
public IActionResult AddTrip([FromBody] Trip trip)
{
if (trip != null)
{
_service.AddTrip(trip);
}
return Ok();
}
[EnableCors("AnotherPolicy")]
[HttpPut("UpdateTrip/{id}")]
public IActionResult UpdateTrip(int id, [FromBody] Trip trip)
{
_service.UpdateTrip(id, trip);
return Ok(trip);
}
[EnableCors("AnotherPolicy")]
[HttpDelete("DeleteTrip/{id}")]
public IActionResult DeleteTrip(int id)
{
_service.DeleteTrip(id);
return Ok();
}
}
}
.
StartUp.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// In production, the React files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/build";
});
//
services.AddTransient<ITripService, TripService>();
services.AddCors(options =>
{
options.AddPolicy("AnotherPolicy",
builder =>
{
builder.WithOrigins(
"http://hirkansolar.ir/",
"http://react.hirkansolar.ir/"
)
.AllowAnyHeader()
.WithMethods("PUT", "DELETE", "GET", "POST");
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseRouting();
// ----
app.UseCors();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
}
}
【问题讨论】:
-
我可以看到完整的控制器吗?
-
我添加了完整的控制器。
-
您好,如果您使用的是共享主机,那就是问题所在
标签: asp.net reactjs asp.net-core plesk