当在模拟器、模拟器或物理电视设备上运行打包为.wgt文件的Tizen TV web应用程序时,它会发出包含'Origin: file://‘头的POST请求,这些请求被服务器拒绝。GET请求不包含源头,并按预期工作。
该项目配置为tv-samsung-5.0,包含以下相关配置行:
<?xml version="1.0" encoding="UTF-8"?> <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="https://redacted.be" version="0.0.1" viewmodes="maximized"> <feature name="http://tizen.org/feature/network.internet"/> <tizen:profile name="tv-samsung"/> <tizen:allow-navigation>*.redacted.be</tizen:allow-navigation> <tizen:content-security-policy>default-src 'self'; connect-src 'self' https://*.youtube.com https://*.redacted.be; style-src 'self' 'unsafe-inline'; media-src https://*.youtube.com https://*.redacted.be blob: </tizen:content-security-policy> <tizen:setting screen-orientation="landscape" context-menu="enable" background-support="disable" encryption="disable" install-location="auto" hwkey-event="enable"/> <tizen:privilege name="http://tizen.org/privilege/internet"/> </widget>
该应用程序是通过使用axios网络库的react-native-web构建的。
如何避免应用发送这个Origin header?
发布于 2019-07-04 17:56:10
Here是MDN文档的一部分,它声明一些头部(包括'Origin')完全由用户代理控制,不能被开发人员修改(您可以在this response中找到更多详细信息)。您需要考虑通过添加CORS规则(a tutorial here)来更改您尝试访问的服务器的配置
此外,我做了更多的研究,找到了this article,它描述了一种使用代理工具解决类似问题的方法。如果您不能更改服务器配置,也许这篇文章会对您有所帮助。
发布于 2019-07-04 00:31:48
不要忘记在您的config.xml中添加权限和允许域名
<tizen:privilege name="http://tizen.org/privilege/internet"/>
<access origin="*" subdomains="true"></access>发布于 2019-07-09 04:38:43
您不能更改此设置。实际上,一些较旧的Tizen电视会发送一个空的Origin。您的服务器应该以某种方式考虑到这一点,或者,如果您不控制服务器,请按照另一个答案中的建议使用代理。
https://stackoverflow.com/questions/56835721
复制相似问题