使用Jquery Mobile创建Cordova APP,在Android设备上进行调试时出错

时间:2016-09-20 02:00:50

标签: cordova jquery-mobile visual-studio-2015 visual-studio-cordova

我下载了jquery Mobile 1.4.5,并在Visual Studio 2015中使用它来创建Cordova APP。当我想调试时,它可以在Android设备上运行,但这是一个错误:

  

拒绝加载图片   '数据:图像/ GIF; BASE64,R0lGODlhAQABAIAAAAAAAP /// ywAAAAAAQABAAACAUwAOw =='   因为它违反了以下内容安全策略指令:   “default-src *”。

     

请注意,未明确设置'img-src',因此使用'default-src'   作为后备。

     

jquery.mobile-1.4.5.min.js(3,20607)

我不知道为什么jquery移动javascript中存在问题。 有人能帮我吗? 感谢。

更新: 的index.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8" />
    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval';">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes" />
    <title>jQuery Mobile</title>
    <link href="css/index.css" rel="stylesheet" />
    <link href="css/jquery.mobile-1.4.5.min.css" rel="stylesheet" type="text/css" />
    <script src="scripts/jquery-1.8.0.min.js" type="text/javascript"></script>
    <script src="scripts/jquery.mobile-1.4.5.min.js" type="text/javascript"></script>
</head>
<body>
    <script src="cordova.js"></script>
    <script src="scripts/platformOverrides.js"></script>
    <script src="scripts/index.js"></script>

    <div data-role="page" id="page">
        <div data-role="header">
            <h1>PageTransition</h1>
        </div>
        <div role="main" class="ui-content">
            <p><a href="#page2" data-transition="fade">Fade</a></p>
            <p><a href="#page2" data-transition="flip">Flip</a></p>
            <p><a href="#page2" data-transition="flow">Flow</a></p>
            <p><a href="#page2" data-transition="pop">Pop</a></p>
            <p><a href="#page2" data-transition="slide">Slide</a></p>
            <p><a href="#page2" data-transition="slidedown">Slidedown</a></p>
            <p><a href="#page2" data-transition="slidefade">Slidefade</a></p>
            <p><a href="#page2" data-transition="slideup">Slideup</a></p>
            <p><a href="#page2" data-transition="turn">Turn</a></p>
            <p><a href="#page2" data-transition="none">None</a></p>
        </div>
        <div data-role="footer">
            <h4>PageTransition</h4>
        </div>
    </div>
    <div data-role="page" id="page2">
        <div data-role="header" data-add-back-btn="true">
            <h1>PageTransition</h1>
        </div>
        <div role="main" class="ui-content"> Back </div>
        <div data-role="footer">
            <h4>PageTransition</h4>
        </div>
    </div>
</body>
</html>

index.js

(function () {
    "use strict";

    document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );

    function onDeviceReady() {

    };

} )();

1 个答案:

答案 0 :(得分:1)

来自html代码中的<meta http-equiv="Content-Security-Policy" ... />。您不允许data:方案用于内容安全策略。

要解决此问题,您可以在data:之后添加default-src *,如下所示:

<meta http-equiv="Content-Security-Policy" content="default-src * data: ; ...>

有关使用内容安全政策的详细信息,请参阅Content Security Policy Reference