QWebEngineView自带Cookie(网页内部js请求http默认含cookie头域)

A-

    m_htmlWidget1 = new QWebEngineView();

    QWebEngineHttpRequest req;
    QUrl url("http://abc.actest.yiran.com/assets/chats/dist/indexMain.html");
    QUrl urlOrigin(http://abc.actest.yiran.com/");   //这个url设置非常重要,只有在该domain下的请求才会自带cookie
    req.setUrl(url);
    //req.setHeader("Cookie", m_cookieStr.toLocal8Bit());

    QNetworkCookie cookieInfo("PASS_ID", token.toLocal8Bit());   //name=value
    QWebEngineCookieStore *cookieStore = m_htmlWidget1->page()->profile()->cookieStore();
    cookieStore->setCookie(cookieInfo, urlOrigin); //此处添加urlorigin
    m_htmlWidget1->page()->profile()->setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies);

    m_htmlWidget1->loadNewPage(req);

    m_htmlWidget1->show();

   

备注:

当我们加载一个页面时,页面中的JS回自动发送http请求,默认是不带cookie,导致我们跟服务器交互失败,上面的设置,能让这些请求自带cookie.

资料绝无仅有,查了半天没完整解决方案,自己摸索了很久

 

没有更多推荐了,返回首页