Laravel 5.5 AJAX Post Call上没有消息异常。 203行,Handler.php,419状态未知

时间:2019-04-14 07:17:18

标签: jquery ajax laravel-5

自从我开始在Windows 10上使用APACHE作为开发环境以来,我一直面临这个问题。绝对有很多链接和讨论此问题的帖子,而这些链接都不能解决这个问题。

我获得请求的“ 419未知状态”以及其他跟踪详细信息:

"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"line": 203,

当我查看laravel.log时,它说,

local.ERROR: The MAC is invalid.

A。为了清楚起见,我在Blade / html页面中有CSRF令牌,我已经在AJAX调用中将它作为标头传递了:

headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },

B。我尝试过-清除浏览器Cookie,然后清除工匠

php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear

C。我尝试使用作曲家dump-autoload进行清理,然后清除缓存

composer clear-cache
composer dump-autoload

为了细心的专家,​​这就是我的ajax调用/ Laravel Controller /路由代码的样子:

AJAX通话:

在下面的代码中,param_cust_unique_id作为参数传递给调用此ajax调用的函数。

$.ajax({
        type: 'post',
        headers: {
                'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        },
        url: '/getBalanceForCustomer',
        data: { "cust_unique_id" : param_cust_unique_id },
        success: function (response) {
             console.log(response);
        },
        error: function (response) {
                console.log(response);
        }
    }); 

拉威尔(Laravel)路线:

Route::post('getBalanceForCustomer', 'CustomersController@getBalanceForCustomer');

Laravel控制器方法:

public function getBalanceForCustomer(Request $request) {

//Balance calculation logic, bit longer hence cutting-it short
return $balance;
} 

我正在使用开发环境:Visual Studio Code,MySQL Workbench,Chrome浏览器。

技术堆栈是:Jquery,AngularJS,Laravel 5.5,MariaDB

在这方面的任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

在标题中使用此元标记

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class MainApp {

public static void main(String[] args) {

    String[] searchMe = {"3<<123", "2<<123", "4<<1234", "4<<123"};  
    //indexes 0 and 2 should pass the test 

    String regExPattern = "(\\d+)<<(\\d+)";

    Pattern p = Pattern.compile( regExPattern );

    for(String x : searchMe){
            Matcher m = p.matcher( x );
            boolean b = m.matches();

            if(b)
            {
                int numLen = Integer.parseInt(m.group(1));
                String group2 = m.group(2);
                if(group2.length()  == numLen ){
                    System.out.println(x);
                }
            }



            }
    }

    }

然后调用ajax:

3<<123
4<<1234