Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios 419(未知状态)Laravel API csrf令牌已更改_Javascript_Ajax_Laravel_Debugging_Axios - Fatal编程技术网

Javascript Axios 419(未知状态)Laravel API csrf令牌已更改

Javascript Axios 419(未知状态)Laravel API csrf令牌已更改,javascript,ajax,laravel,debugging,axios,Javascript,Ajax,Laravel,Debugging,Axios,当我使用Axios请求我的Laravel后端并获取数据并请求另一个用于某些数据的API时,我遇到了错误,这很顺利,但在API返回数据后,我请求我的Laravel后端存储数据。它返回一个带有 app.js:360 POST 419(未知状态) 我已经尝试在我的PHP后端进行检查,只有在禁用VerifyCSRFToken中间件组时才会停止 但出于安全原因,我需要检查CSRF令牌 我能够理解为什么csrf令牌在发送请求时被更改 如果我只是将请求发送到我的laravel后端,那么一切正常,但是当我请求另

当我使用
Axios
请求我的Laravel后端并获取数据并请求另一个用于某些数据的API时,我遇到了错误,这很顺利,但在API返回数据后,我请求我的Laravel后端存储数据。它返回一个带有

app.js:360 POST 419(未知状态)

我已经尝试在我的PHP后端进行检查,只有在禁用
VerifyCSRFToken
中间件组时才会停止

但出于安全原因,我需要检查CSRF令牌

我能够理解为什么csrf令牌在发送请求时被更改

如果我只是将请求发送到我的laravel后端,那么一切正常,但是当我请求另一个api时,问题出现在将请求发送到我的后端

function addSession(url, formdata) {

    //Add Session
    axios.post(url, formdata)
        .then(res => {
            console.log(res)

            var data = res.data;

            if ((data.session_info != null && data.session_info != {})) {
                console.log(data.session_info);
            }

        })
        .catch(err => {

            console.error(err);
        })

}

function getApiDetails() {

    //Start getting api details
    axios.get('https://ipapi.co/json/').then(res => {

            console.log(res)
            var csrf = jr('meta[name="csrf-token"]').get(0).content;
            var ses_id = jr('meta[name="verify-token"]').get(0).content;
            var cur_url = jr('link[rel="canonical"]').get(0).href;

            // console.log(csrf, ses_id, cur_url);

            var url = '/session-adding-api';

            var formdata = new FormData();

            formdata.append('_token', csrf);
            formdata.append('session_token', ses_id);
            formdata.append('session_repeat', 0);
            formdata.append('current_url', cur_url);

            Object.entries(res.data).forEach(entry => {
                // console.log(entry[0], entry[1]);
                formdata.append(entry[0], entry[1]);

            });

            addSession(url, formdata);

        })
        .catch(err => {
            console.error(err);
        })

    //End getting api details

}

function matchSession() {

    //Match Session Start
    var csrf = jr('meta[name="csrf-token"]').get(0).content;
    var ses_id = jr('input[name="verify-token"]').get(0).content;

    var url = '/session-matching-api';

    var formdata = new FormData();

    formdata.append('_token', csrf);
    formdata.append('session_token', ses_id);

    axios.post(url, formdata)
        .then(res => {
            console.log(res)

            var data = res.data;

            if ((data.match != true)) {

                getApiDetails()

            }
        })
        .catch(err => {
            console.error(err);
        })
    //Match Session

}

matchSession();

我建议研究一下这个问题。如果CSRF令牌过期或无效,Laraval返回419表示“页面过期”。检查以确保您的CSRF值是正确的。@IceMetalPunk的可能重复看看我正在做什么来解决这个问题:我先禁用了CSRF保护,然后我尝试将CSRF令牌从前端发送到后端,并在后端通过session()->pull(“\u token”)拉取令牌并匹配它们,结果发现它们不相等。。。为什么?怎么办?以上这些都不能回答我的问题。。