在我的Laravel 5.2应用程序中,我试图通过ajax在循环中发布一些URL但是我遇到了两个问题:
找不到支持的加密器。密码和/或密钥长度无效。
和
TokenMismatchException
Javascript代码:
urls.each(function(url) {
var data = {
urls: url.value
};
$.ajax({
type: "POST",
url: "/ajax/checkUrl",
data: data,
headers: {'X-CSRF-TOKEN': '{!! csrf_token() !!}'},
success: function (data) {
var result = $.parseJSON(data);
console.log(result['msg']);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log('Error: ' + thrownError);
}
});
});
routes.php文件
Route::group(['domain' => env('APP_URI')], function() {
Route::group(['middleware' => ['auth']], function () {
Route::post('ajax/checkUrl', 'AjaxController@checkUrl');
});
});
我的AjaxController方法只是使用cURL跟踪每个URL,获取一些数据并将其传回视图。
通常,我收到错误
production.ERROR:异常'RuntimeException',消息'找不到支持的加密器。密码和/或密钥长度无效。在C:\ wamp \ www \ app \ vendor \ laravel \ framework \ src \ Illuminate \ Encryption \ EncryptionServiceProvider.php:45
它首先工作但是在约50个ajax请求之后,其中一些开始失败并出现500(内部服务器错误)。
我尝试过:
在我的config / app.php中,我有:
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',
我的代码在Laravel应用程序之外独立工作,所以即使我从CSRF保护中排除了URL,我也不知道为什么会出现这些错误?
这些错误发生在localhost上。生产服务器在约100个ajax请求后生成 401 Unauthorized ,有时会将我退出。
为什么会出现这种情况的任何建议?