dugubingxun

学习是要一直坚持的事

解决vue用axiso两次访问后台api,发现后台的sessionID不一致

我用的是ASP.NET Core7.0做的后台api,在解决了跨域问题(这个问题在官网上就有答案https://learn.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-7.0

为了方便 阅读,我再讲一下

在里progam里面增加代码(黄色代码),代码格式我就把不变的放到一起了

解决完这个之后,因为要用session所以又增加了对session的支持(绿色部分),这个也可以在官网或者其他地方找到

然后解决需要session 的id 一致问题,首选在服务端放开带cookie的验证,红色部分,由于加了验证,导致AllowAnyOrigin()错误,所以改成了.SetIsOriginAllowed(_ => true),

这样服务端就解决了

var MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCors(options => {

options.AddPolicy(name: MyAllowSpecificOrigins,

policy =>
{
policy.WithOrigins("*", "*", "*")
//.AllowAnyOrigin()
.SetIsOriginAllowed(_ => true)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});

builder.Services.AddDistributedMemoryCache();//添加session支持,同时要加这句
///设置session
builder.Services.AddSession(options =>
{

options.IdleTimeout = System.TimeSpan.FromSeconds(120);//设置session的过期时间
//options.Cookie.Name = ".AdventureWorks.Session";
//options.Cookie.HttpOnly = true;
options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
options.Cookie.IsEssential = true;
});

///下面这些不用的可以去掉

 

builder.Services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddHttpContextAccessor();  
builder.Services.AddMvc();

 

builder.Services.AddControllers();

var app = builder.Build();     app.UseHttpsRedirection();    app.UseStaticFiles();     app.UseRouting();

app.UseCors(MyAllowSpecificOrigins);

app.UseAuthorization();   

  app.UseSession();//UseSession配置在UseMvc之前  

  app.MapControllers();     app.Run();

 

然后是在vue+axiso的时候遇到问题

首先在axiso引用的地方增加 以下代码,

axios.defaults.withCredentials =true;  
很多地方都写这样就直接可以解决,然后我试了之后,发现如果直接调用后端地址进去之后发现session的Id问题还是未解决
最后又是跟踪文件头又是返回的跟踪还是没解决,
最后无奈之下还是试了试代理
在vue.config.js 中增加代理,如下代码后,问题解决
,最后我想问一下这问题产生的原理是啥啊,哪位大神看到的话给个答案

module.exports = {
    devServer: {
        proxy: {
            '^/api': {
                target: 'https://localhost:7164',
                 pathRewrite: {'^/api': ''}
                 ,ws: true
                 ,changeOrigin: true
            }
        }
    },.........后面代码省了
 

 

posted on   冰血飞  阅读(180)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示