A網站的登陸跳轉到B網站


業務需求:

a網站的登陸地方輸入用戶名密碼,直接跳轉到b網站的首頁,當時公司b網站已經開發好了的,直接拿了他的登陸地址url,看了network里面的login請求需要的參數,找到登陸的頁面url,直接讓跳轉,搞了半天才解決這個問題。

 

於是就在A頁面寫了ajax請求,拿到測試賬號之后,獲取數據,可以獲取到數據,然后就寫跳轉的頁面,能跳轉過去,但是存不了這個登陸的狀態

 

 

 

cookie的存儲狀態拿到了,但是存不了,最后看來別人的分享之后直接一行代碼解決,后知后覺才知道ajax請求是有同源策略的

一個剛進入開發的小博主分享,堅持遇見更好的自己!歡迎各位指點,評論,技術探討。

問題解決:

完整的無歧義的表述應該是這樣:
1.ajax會自動帶上同源的cookie,不會帶上不同源的cookie
2. 可以通過前端設置withCredentials為true, 后端設置Header的方式讓ajax自動帶上不同源的cookie,但是這個屬性對同源請求沒有任何影響。會被自動忽略。
3. 這是MDN對withCredentials的解釋: MDN-withCredentials ,我接着解釋一下同源。
眾所周知,ajax請求是有同源策略的,雖然可以應用CORS等手段來實現跨域,但是這並不是說這樣就是“同源”了。ajax在請求時就會因為這個同源的問題而決定是否帶上cookie
————————————————
原文鏈接:https://blog.csdn.net/Alice_124/article/details/81705099

 

$(".zhangButton").click(function () {
        let zhangName = $("input[name='zhangName']").val()
        let zhangPass = $("input[name='zhangPass']").val()
        let zhangUrl = 'https://xxxxxxxx/login'//登錄接口
        layui.use('layer', function () {
            var layer = layui.layer;
        $.support.cors = true;//允許ajax跨域
            $.ajax({
                method: 'post',
                url: zhangUrl,
                data: JSON.stringify({ loginName: zhangName, password: hex_md5(zhangPass) }),
                contentType: "application/json",//傳遞數據格式
                xhrFields: { withCredentials: true },//允許攜帶cookie
                success: function (res) {
                    console.log(res)
                    if (res.code == "200") {
                        layer.msg('正在跳轉請稍等...');
                        setTimeout(function () {
                            window.open('https://xxxxxx/home')
                            }
                        }, 1000)

                    } else {
                        layer.msg('請輸入正確的用戶名和密碼');
                    }
                }
            });
        });
    })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM