私は.netコアWeb APIプロジェクトとこのブロックで悪夢を与えています。私は、ionic-angから.netコアプロジェクトへのリクエストを送信しようとしています。 GET要求は完全に機能しています。しかし、POST要求はありません。私がクロームでプロジェクトをテストしようとすると、OPTIONSリクエストに対してnet :: ERR_CONNECTION_RESETと表示されます。実際のPOSTリクエスト前にChromeがプリフライトのOPTIONSリクエストを送信することを理解しています。しかし、それは問題です。私はこのようなミドルウェアでOPTIONSリクエストを処理しようとしましたChromeからの.netコアWeb APIへのPOSTリクエストは機能しません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Hosting;
namespace A.Middlewares
{
public class OptionsMiddleware
{
private readonly RequestDelegate _next;
private IHostingEnvironment _environment;
public OptionsMiddleware(RequestDelegate next, IHostingEnvironment environment)
{
_next = next;
_environment = environment;
}
public async Task Invoke(HttpContext context)
{
this.BeginInvoke(context);
await this._next.Invoke(context);
}
private async void BeginInvoke(HttpContext context)
{
if (context.Request.Method == "OPTIONS")
{
context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "http://localhost:8100" });
context.Response.Headers.Add("Access-Control-Allow-Headers", new[] { "Origin, X-Requested-With, Content-Type, Accept" });
context.Response.Headers.Add("Access-Control-Allow-Methods", new[] { "GET, POST, PUT, DELETE, OPTIONS" });
context.Response.Headers.Add("Access-Control-Allow-Credentials", new[] { "true" });
context.Response.StatusCode = 200;
await context.Response.WriteAsync("OK");
}
else
{
context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "http://localhost:8100" });
context.Response.Headers.Add("Access-Control-Allow-Headers", new[] { "Origin, X-Requested-With, Content-Type, Accept" });
context.Response.Headers.Add("Access-Control-Allow-Credentials", new[] { "true" });
}
}
}
public static class OptionsMiddlewareExtensions
{
public static IApplicationBuilder UseOptions(this IApplicationBuilder builder)
{
return builder.UseMiddleware();
}
}
}
しかし、まだそれは役に立ちません。その周りに何かのトリックがあれば、私を教えて!
ホスティングウェブページのURLはどれですか? POSTしようとしているURLは何ですか? – mjwills