首页 > 解决方案 > 我启用了 CORS,但仍然受到限制

问题描述

这是我在 asp.net core web API 中的配置:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
            {
                builder
                       .AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            }));

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseCors("CorsPolicy");

最后我的javascript(打字稿反应):

const requestOptions = {
    method: 'POST',
    mode: 'cors' as RequestMode,
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ Username: username, Password: password })
};

return fetch(`${this.baseUrl}/auth/register`, requestOptions).then(res => {
    debugger;
    if (res.ok === false) {
        return Promise.reject("Invalid request");
    }

    return res.json();
});

我想不通。我试过改变客户端的模式。我已经在 API 中尝试过.WithOrigins("http://localhost:3000") ,但我现在不走运了。我在这里想念什么?我用 npm start 运行了我的 react 应用程序,是这样吗?不该是?

回复:

Request URL: https://localhost:44346/auth/register
Request Method: POST
Status Code: 404 
Remote Address: [::1]:44346
Referrer Policy: strict-origin-when-cross-origin

响应标头:

access-control-allow-origin: *
date: Thu, 17 Dec 2020 22:23:37 GMT
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET

标签: reactjstypescriptasp.net-coreasp.net-web-apireact-typescript

解决方案


import { ExpectedConditions as EC, browser, by, element } from 'protractor';
// ...

async function getTextFromClipboard() {
  // ...
  await browser.wait(
    EC.visibilityOf(element(by.css('.btn-copy'))),
    waitTimeout
  );
  await element(by.css('.btn-copy')).click();
}

推荐阅读