Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

400
Visualizações
ASP.net core 3.1: Javascript: window.open: Razor page

I'm trying to open a razor page method in my javascript and I'm not sure why it opens on http, not https even though the url is set to https.

Below is my code:

Javascript:

function openWindowWithPost(url, data) {
  var form = document.createElement("form");
  form.target = "_blank";
  form.method = "POST";
  form.action = url;

  form.style.display = "none";

  for (var key in data) {
    var input = document.createElement("input");
    input.type = "hidden";
    input.name = key;
    input.value = data[key];
    form.appendChild(input);
  }
  var input = document.createElement("input");
  var token = $('input:hidden[name="__RequestVerificationToken"]').val();
  input.name = "__RequestVerificationToken";
  input.type = "hidden";
  input.value = token;
  form.appendChild(input);

  document.body.appendChild(form);
  form.submit();
  document.body.removeChild(form);
}

function ButtonClickedEvent(){
    var inputJSON = '{"id": 1}';
    var url = location.protocol + '//' + location.host + '/Report/?handler=BatchReport';
    console.log('url: ' + url);    
    openWindowWithPost(url, JSON.stringify(inputJSON));        

}

Razor Page: Code behind:

[Authorize]
[HttpPost]
public async Task<string> OnPostBatchReport([FromBody] InputParameter parametersJSON)
{
    var somestring = await getstring(parametersJSON);
    return somestring ;

}

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{       

    services.AddRazorPages().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = null);
    services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");


    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.Unspecified;                
        options.Secure = CookieSecurePolicy.SameAsRequest;                
        options.HandleSameSiteCookieCompatibility();
    });

    // Sign-in users with the Microsoft identity platform
    services.AddMicrosoftIdentityWebAppAuthentication(Configuration);

    services.AddControllersWithViews(options =>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    }).AddMicrosoftIdentityUI();

    
}

My website is hosted at https://localhost:12345 and when I click on the button, I call the ButtonClickedEvent javascript function to open the report page in a separate tab. This tab has the protocol as http, not https.

Any help is appreciated.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Regarding the application hostURL it usually depends on launchsettings.json file configuration.

To resolve this issue you should set applicationUrl under launchsettings.json as what you want it to while your application run.

launchsettings.json:

enter image description here

Hope it would guided you accordingly.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda