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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.