Session 使用浏览器地址栏时,我只能使MVC6会话正常工作
设置: 因此,我有两个VisualStudio实例正在运行 1) 后端:带有名为homeController的MVC控制器的MVC6应用程序 2) 前端:网站项目。HTML 我没有用mvc中的传统视图构建它,而是一个独立的HTML网页,使用mvc后端的数据我喜欢把它们分开 测试: 所以我想在MVC6中第一次使用会话,然后就开始了 第一次测试进行得很顺利,因为我没有费心编写html和ajax,我只是从地址栏调用了mvc,如下所示:Session 使用浏览器地址栏时,我只能使MVC6会话正常工作,session,asp.net-core-mvc,Session,Asp.net Core Mvc,设置: 因此,我有两个VisualStudio实例正在运行 1) 后端:带有名为homeController的MVC控制器的MVC6应用程序 2) 前端:网站项目。HTML 我没有用mvc中的传统视图构建它,而是一个独立的HTML网页,使用mvc后端的数据我喜欢把它们分开 测试: 所以我想在MVC6中第一次使用会话,然后就开始了 第一次测试进行得很顺利,因为我没有费心编写html和ajax,我只是从地址栏调用了mvc,如下所示: $.ajax({ url: url + "/home/Se
$.ajax({
url: url + "/home/SetSession",
type: 'GET',
async: true,
crossDomain: true,
cache: true,
success: function (data) {
alert("finito - Sessionid: " + data);
$.ajax({
url: url + "/home/GetSession",
data: {
sessionId: data,
},
type: 'GET',
async: true,
crossDomain: true,
cache: true,
success: function (data) {
alert(data);
},
error: function (x, t, m) {
alert("failed");
}
});
},
error: function (x, t, m) {
alert("failed);
}
});
其背后的代码是:
[HttpGet]
public string SetSession()
{
string sessionId = "1";
HttpContext.Session.SetString(sessionId, "myvalue");
return sessionId;
}
[HttpGet]
public string GetSession(string sessionId)
{
string value = HttpContext.Session.GetString(sessionId);
return "session value is: " + value;
}
然后:
其背后的代码是:
[HttpGet]
public string SetSession()
{
string sessionId = "1";
HttpContext.Session.SetString(sessionId, "myvalue");
return sessionId;
}
[HttpGet]
public string GetSession(string sessionId)
{
string value = HttpContext.Session.GetString(sessionId);
return "session value is: " + value;
}
它正确地给出了我的价值
问题:
但是当我用相同的方法编写网站和它的调用程序时,就不记得第二次调用中设置的值了
我的代码如下:
$.ajax({
url: url + "/home/SetSession",
type: 'GET',
async: true,
crossDomain: true,
cache: true,
success: function (data) {
alert("finito - Sessionid: " + data);
$.ajax({
url: url + "/home/GetSession",
data: {
sessionId: data,
},
type: 'GET',
async: true,
crossDomain: true,
cache: true,
success: function (data) {
alert(data);
},
error: function (x, t, m) {
alert("failed");
}
});
},
error: function (x, t, m) {
alert("failed);
}
});
那么为什么我的网站无法使用它呢?有什么区别?
我的一些Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddCors();
services.AddCaching();
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.CookieName = ".BrunataBooking";
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseIISPlatformHandler();
app.UseStaticFiles();
app.UseSession();
app.UseCors(builder =>
{
builder.WithOrigins("*")
.WithMethods("GET", "POST")
.AllowAnyHeader();
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Start}/{id?}");
});
}