PyQt/PySide2 QWebEngineView遇到No 'Access-Control-Allow-Origin' header 错误解决

1 篇文章 0 订阅
1 篇文章 0 订阅

注:如果不是和pyqt/PySide2直接相关程序,请查阅其他解决方案。
问题描述:
1.环境:PySide2, Python3.6.8,arcgis JavaScript API 4.14。
2.现象:新建HTML和js文件,通过arcgis JavaScript API 调用basemap。直接用浏览器打开HTML,运行正常,但是通过PySide2的QWebEngineView调用时,会报出如下错误:

*** has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’
header is present on the requested resource. If an opaque response
serves your needs, set the request’s mode to ‘no-cors’ to fetch the
resource with CORS disabled.

在这里插入图片描述3.解决方法:在实例化

self.browser=QWebEngineView()

之后,需要调用:

self.browser.page().settings().setAttribute(QWebEngineSettings.LocalContentCanAccessRemoteUrls, True)

其作用是:允许本地加载的文档忽略跨域规则,以便它们可以访问通常会被阻止的远程资源,因为所有远程资源都被视为本地文件的跨域。 禁用此设置(默认)后,仍然可以使用跨域规则阻止的远程访问。 请注意,禁用此设置不会阻止XMLHttpRequests或本地文件中的媒体元素访问远程内容。 基本上,它仅停止某些HTML子资源,例如脚本,因此禁用此设置不是安全机制。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt是一款跨平台的图形用户界面开发框架,提供了丰富的GUI控件和功能以及跨平台的能力。PyQt和PySide是在Qt基础上开发的Python绑定库,使得我们可以使用Python语言来编写Qt应用程序。 PyQt和PySide提供了和Qt类似的功能和API,使得我们可以方便地在Python中使用Qt的各种特性,如窗口管理、布局管理器、事件处理和信号槽机制等。它们支持Qt的所有模块,因此可以利用Qt的强大功能开发出高度可定制的应用程序。 Custom Widgets是指自定义的用户界面部件,可以根据需求自己进行开发或者对现有的控件进行定制。在PyQt和PySide中,我们可以使用Qt的功能来创建自定义的控件,通过继承已有的控件类来添加新的功能或者修改控件的外观和行为。这样可以满足特定需求并增加应用程序的交互性和美观性。 开发自定义的控件需要理解Qt的事件和绘图机制,掌握Qt提供的绘图功能和控件定制的技术。我们可以使用Qt的绘图API来绘制自定义的界面元素,并且可以通过事件和信号槽来实现控件的交互性。在PyQt和PySide中,可以利用Python的特性和语法来更加方便地进行控件的开发和定制。 总之,Qt、PyQt和PySide的结合可以帮助我们快速开发跨平台的应用程序,并且可以通过自定义控件来满足特定需求。这些工具和技术的使用可以大大提高应用程序的开发效率和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值