jquery-1.11.1.min.js:4 Refused to connect to
'https://xxxxxxxx/v1/common/introductions/faqs' because it
violates the following Content Security Policy directive: "default-src
'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'". Note that
'connect-src' was not explicitly set, so 'default-src' is used as a
fallback.
这是我为我的cordova app执行此jquery时遇到的错误
$(document).ready(function(){
$("#FAQS").html("Hello worldss!");
alert("rajesh");
$.getJSON("https://xxxxxxxxx/v1/common/introductions/faqs",
function(result)
{
$("#FAQS").html(result['faq'][0]);
alert("hi");
})
});
以下是我的index.html中的安全政策
<meta http-equiv="Content-Security-Policy" content="default-src 'self'
data: gap: https://ssl.gstatic.com 'unsafe-eval'; connect-src 'self'
https://xxxxxxxx/v1/common/introductions/faqs; style-src 'self'
'unsafe-inline'; media-src *">
我在堆栈溢出中遇到了很多问题 Cordova - Refused to connect to api from device (Content Security Policy)
但无法显示我的json数据并显示相同的错误
答案 0 :(得分:3)
如果您想将https://apis.google.com/js/plusone.js
中的代码列入白名单,则必须将源主机的名称添加到您的CSP中
script-src 'self' https://apis.google.com
因此,要允许访问https://xxxxxxxx/v1/common/introductions/faqs
,您必须将对应的主机名称添加到您的CSP中:
connect-src 'self' https://xxxxxxxx
完整的CSP可能如下所示:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'
data: gap: https://ssl.gstatic.com 'unsafe-eval'; connect-src 'self'
https://xxxxxxxx; style-src 'self'
'unsafe-inline'; media-src *">
另请参阅connect-src指令中的Mozilla's documentation。它明确说明了主机源的外观:
通过名称或IP地址访问Internet主机,以及可选的URL方案和/或端口号。该网站的地址可能包含一个可选的地址 领先的通配符(星号字符,&#39; *&#39;),您可以使用 通配符(再次,&#39; *&#39;)作为端口号,表示所有合法 端口对源有效。
答案 1 :(得分:1)
首先,您应该使用更新版本的jquery。
其次,您需要在服务器上设置访问策略以允许来自UI的CORS ...
php中的看起来像这样:
<?php
header("Access-Control-Allow-Origin: *");
您可以在此处了解如何使用其他语言进行操作:https://enable-cors.org
第三。您使用nginx作为Web服务器还是反向代理?如果是后者,则需要检查你的nginx xconfig。