Zugriff auf das Fetch unter 'https://a.someting.edu/Newsletter/api/Anewslslter' von Ursprungs -POSPLAGE 'ASSACTICE. Prüfung der Zugriffskontrolle: Es gibt keinen Http OK -Status
Mein Programm.cs Datei:
Code: Select all
var MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
policy =>
{
policy.WithOrigins("https://t4.something.edu")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
builder.Services.AddControllers();
// context
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.AddCommandLine(args)
.AddUserSecrets
(true)
.Build();
builder.Services.AddDbContext(option =>
{
option.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
});
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddTransient();
builder.Services.AddScoped();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(MyAllowSpecificOrigins);
app.UseAuthorization();
app.MapControllers();
app.Run();
< /code>
Frontend HTML JavaScript -Code < /p>
function send()
{
var url = 'https://a.something.edu/News/api/news';
var headers = {
'X-API-Key' : "something1234",
'Accept': "application/json",
'Content-Type': "application/json;charset=utf-8"
};
var data = {
"email" : document.getElementById("customerEmail").value
};
var payload = JSON.stringify(data);
var options = {
method: "POST",
headers: headers,
body: payload
};
try {
var response = fetch(url, options);
}catch(error) {
alert('Error is : ' + error);
}
alert('Response is - ' + response);
}
Code: Select all
< /code>
Controller -Code < /p>
[Route("api/[controller]")]
[ApiController]
public class NewsletterController(NewsletterContext context) : ControllerBase
{
private readonly NewsletterContext _context = context;
[HttpPost]
public async Task PostNewsletterItem(NewsletterItem newsletterItem)
{
_context.Newsletter_Emails.Add(newsletterItem);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
throw;
}
return Ok("The record has been saved correctly");
}
}
< /code>
Modellcode < /p>
namespace NewsletterEmails.Models
{
public class NewsletterItem
{
[Key]
public required string Email { get; set; }
}
}