Laravel `Auth` 与第 3 方库 ajax 调用不兼容?

问题描述 投票:0回答:2

我有一个 Laravel 控制器,当用户登录时返回图像:

public function show($file)
{

   $path = storage_path('app/files/' . basename($file));

   if(!\Auth::check() || !\File::exists($path) return back();

   return response()->file($path);
}

当我在浏览器中输入

my-domain.com/show/image.png
时,登录时会显示图像。

当我登录并使用简单的 jQuery ajax 调用时,它也可以工作:

$.get('https://my-domain.com/show/image.png', '', function(data){
   console.log('success');
   console.log(data);
}

但是,当我记录它并通过 DYMO JS Framework 3.0Docs)使用 ajax 调用时,它突然不再工作了。

更准确地说,当我打电话时

 dymo.label.framework.loadImageAsPngBase64('https://my-domain.com/show/image.png');

我收到错误,没有返回图像。当我删除控制器中的

!\Auth::check()
时,它就可以工作了。

为什么

Auth
不能与第 3 方库 ajax 调用一起使用?我能做些什么来解决它吗?

ajax laravel authorization dymo
2个回答
1
投票

问题可能是

dymo
框架没有将会话 cookie 作为请求的一部分发送,因此 Laravel 无法确定登录的用户。

如果

dymo
框架不支持向请求添加额外的标头或数据(看起来并不支持),您需要在 javascript 中的其他位置加载图像。

例如,您可以使用

axios
或其他HTTP客户端来获取图像,然后对其进行base64编码并将其传递给
dymo.label.framework.loadImageAsPngBase64()


0
投票

当我尝试打印它时,我需要你的帮助,给我 CORS 错误

© www.soinside.com 2019 - 2024. All rights reserved.