在JxBrowser中访问Canvas时的跨源限制

时间:2017-08-01 08:16:36

标签: java swing cors cross-domain jxbrowser

我已经下载了JxBrowser,因为我想在我的e-Assessment应用程序中实现它,我在Java Swing中为学生开发了这个应用程序。然而,我遇到了一个问题。我有一个控件是HTML Canvas,我允许学生绘制每隔几秒后自动保存的图表(我正在使用 wpaint.js )。我之前在使用Java FXBrowser时能够方便地从画布中提取图像数据,但是,自从我使用JxBrowser以来,我无法获取图像数据,相反,我得到以下异常。

无法执行' toDataURL' on' HTMLCanvasElement':可能无法导出受污染的画布。

图像位于本地系统上,是学生必须尝试的问题的一部分。我相信这与交叉起源限制有关。但是,在这种情况下没有跨域请求,因为应用程序和映像都是同一应用程序的一部分并在本地访问。 (学生不能手动选择图像,因为它是试卷的一部分,必须自动送入画布并自动保存。我需要自动保存的图像数据,由于上述例外,我没有得到。 )。请帮忙,我现在卡住了。

1 个答案:

答案 0 :(得分:1)

我终于解决了。在创建第一个浏览器实例之前输入以下chrome开关来禁用同源策略

BrowserPreferences.setChromiumSwitches("--disable-web-security", "--allow-file-access-from-files");

感谢JxBrowser支持团队非常及时地帮助我。