base64 在 Laravel 5.4 的中间件中不起作用
base64 not working in Middleware of Laravel 5.4
我的中间件代码:
public function handle($request, Closure $next) {
$api_headers = getallheaders();
$error_msg = '';
$error = 0;
if (isset($api_headers) && !empty($api_headers)) {
if (isset($api_headers ['device_id']) && !empty($api_headers['device_id'])) {
} else {
$error_msg = 'Please send device ID header.';
$error = 1;
}
if (isset($api_headers['device_type']) && !empty($api_headers['device_type'])) {
} else {
$error_msg = 'Please send device type header.';
$error = 1;
}
} else {
$error_msg = 'Please send headers.';
$error = 1;
}
if ($error == 1) {
return base64_encode(response()->json(['error' => true, 'message' => $error_msg, 'code' => 0]));
} else {
return $next($request);
}
}
我想将 JSON 转换为编码字符串并将其作为响应发送。所以我用 base64_encode 把它转换成一个字符串。但它不适用于中间件。我不知道是什么原因,我做了很多努力,但不知道该怎么做。我还附上了错误的屏幕截图。如果可能请帮忙。
我不知道你想用什么状态码来响应,但是试试:
$encoded = base64_encode(response()->json([
'error' => true,
'message' => $error_msg,
'code' => 0
]));
return response($encoded, ?response status code?)
->header('Content-Type', 'text/plain');
我的中间件代码:
public function handle($request, Closure $next) {
$api_headers = getallheaders();
$error_msg = '';
$error = 0;
if (isset($api_headers) && !empty($api_headers)) {
if (isset($api_headers ['device_id']) && !empty($api_headers['device_id'])) {
} else {
$error_msg = 'Please send device ID header.';
$error = 1;
}
if (isset($api_headers['device_type']) && !empty($api_headers['device_type'])) {
} else {
$error_msg = 'Please send device type header.';
$error = 1;
}
} else {
$error_msg = 'Please send headers.';
$error = 1;
}
if ($error == 1) {
return base64_encode(response()->json(['error' => true, 'message' => $error_msg, 'code' => 0]));
} else {
return $next($request);
}
}
我想将 JSON 转换为编码字符串并将其作为响应发送。所以我用 base64_encode 把它转换成一个字符串。但它不适用于中间件。我不知道是什么原因,我做了很多努力,但不知道该怎么做。我还附上了错误的屏幕截图。如果可能请帮忙。
我不知道你想用什么状态码来响应,但是试试:
$encoded = base64_encode(response()->json([
'error' => true,
'message' => $error_msg,
'code' => 0
]));
return response($encoded, ?response status code?)
->header('Content-Type', 'text/plain');