axios 不适用于三星 Tizen 电视,但在模拟器中运行良好

axios doesn't work on Samsung Tizen TVs but works fine in emulator

简单的 axios 在模拟器和浏览器中运行良好,但在 Samsung Tizen TV 2016 上不起作用,并且在控制台中没有错误。

使用 cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

和这样的脚本:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="Tizen basic template generated by Tizen Web IDE"/>

    <title>Tizen Web IDE - Tizen - Samsung Tizen TV basic Application</title>

    <link rel="stylesheet" type="text/css" href="css/style.css"/>
    <script src="js/main.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body style="width: 1920px; height:1080px; position: fixed;">

  <script>  
      axios.get('https://api.github.com/users/axios')
      .then(function(response){
      console.log(response.data);
      id = response.data.id;
      alert(id);
      });
  </script>
</body>
</html>

已解决。在使用 axios 之前,必须将一行代码添加到我们的脚本中:

axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';

您需要在 config.xml

中设置权限和访问策略

特权

为了授予访问网络的权限,您需要在 tizen studio 中进行设置。

<tizen:privilege name="http://developer.samsung.com/privilege/network.public"/>

政策

您需要设置您可以访问的网址。

<access origin="*" subdomains="true"/>