Ajax调用Cordova ios SecurityError:DOM Exception 18

时间:2015-07-19 23:20:06

标签: javascript ios ajax cordova

您好我正在通过Cordova(5.1.1)/ Phonegap构建iOS应用程序,我遇到了一个无法解决的问题。

一个基本的Ajax电话会引发SecurityError: DOM Exception 18我尝试了所有关于白名单的技巧,现在我迷路了......任何可以提供帮助的人?谢谢。

以下是设备准备就绪后的操作:

    var getUrl = 'http://shopplo.com/api/posts/radius/'+app.lat_min+'x'+app.lat_max+'x'+app.lng_min+'x'+app.lng_max+'';

    //console.log(getUrl);

    var getPosts = $.ajax({
          method: 'GET',
          url: getUrl,
          dataType: 'JSON'
        })
        .done(function(e) {
            console.log( e );


        })
        .fail(function(e) {
            //console.log( "error");

            $.each(e, function(key, element) {
                console.log('key: ' + key + '\n' + 'value: ' + element);
            });

        })
        .always(function() {
            console.log( "complete" );
        });

getUrl是:{{3}}

我得到了:

2015-07-20 01:12:55.981 ShopploLight[779:568632] key: responseJSON :: value: undefined
2015-07-20 01:12:55.983 ShopploLight[779:568632] key: status :: value: 0
2015-07-20 01:12:55.983 ShopploLight[779:568632] key: statusText :: value: Error: SecurityError: DOM Exception 18
2015-07-20 01:12:55.984 ShopploLight[779:568632] complete

3 个答案:

答案 0 :(得分:3)

检查您的元标记。 默认情况下,它使用:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

使用以下代码启用所有请求

<!-- Enable all requests, inline styles, and eval() -->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'">

答案 1 :(得分:2)

由于语法错误导致上述答案错误。

以下是正确的:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';">

答案 2 :(得分:0)

您可以只允许您正在进行ajax调用的URL,而不是允许所有内容。例如,如果我想从facebook API获得一些东西,我可能会有类似的东西:

<meta http-equiv="Content-Security-Policy" content="style-src 'self' 'unsafe-inline'; script-src: 'self' https://graph.facebook.com">