如何在Tizen Web应用程序中修复'Origin:file://'

时间:2019-07-01 12:28:35

标签: web-applications tizen tizen-web-app

在模拟器,仿真器或物理电视设备上运行打包为.wgt文件的Tizen TV网络应用程序时,它将发出包含“ 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标头?

3 个答案:

答案 0 :(得分:1)

不要忘记在config.xml中添加特权并允许域

<tizen:privilege name="http://tizen.org/privilege/internet"/>
<access origin="*" subdomains="true"></access>

答案 1 :(得分:1)

Here是MDN文档的一部分,其中指出某些标头(包括“ Origin”)完全由用户代理控制,并且无法由开发人员修改(您可以在this response中找到更多详细信息)。您需要考虑通过添加CORS规则(a tutorial here

来更改尝试访问的服务器的配置。

此外,我进行了更多研究,发现this article描述了一种使用代理工具解决类似问题的方法。如果您无法更改服务器配置,则本文可能对您有用。

答案 2 :(得分:0)

您无法更改。实际上,一些旧的Tizen电视会发送一个空的Origin。您的服务器应该以某种方式考虑到这一点,或者,如果您不控制服务器,请按照另一个答案中的建议使用代理。