2017-07-28 57 views
3
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. 

這是在執行這個jQuery我科爾多瓦程序,我正在錯誤嘗試從API獲取JSON數據科爾多瓦安全策略

$(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數據和它顯示了同樣的錯誤

+1

你能用'的https檢查://僅xxxxxxxx'?使用 – shakib

+0

@shakib是的'連接-SRC「自我」 https://開頭XXXXXXXX;'應該做的工作 – Phonolog

+0

@shakib API是工作 –

回答

1

首先,你應該使用jquery的最新版本。

其次,你需要設置服務器,以允許從您的UI CORS訪問策略...

在PHP它看起來像這樣:

<?php 
header("Access-Control-Allow-Origin: *"); 

你可以找到怎麼辦它在其他語言在這裏:https://enable-cors.org

第三。你使用nginx作爲你的web服務器還是作爲反向代理?如果是後者,你將需要檢查你的nginx xconfig。

2

退房以下example from html5rocks

如果你想從https://apis.google.com/js/plusone.js白名單代碼,你就必須給源主機的名稱添加到您的CSP像這樣

script-src 'self' https://apis.google.com 

所以允許訪問https://xxxxxxxx/v1/common/introductions/faqs你必須在correspondig主機的名稱添加到您的CSP:

connect-src 'self' https://xxxxxxxx 

一個完整的CSP可以看看LIK E本:

<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 *"> 

也看到了在連接-SRC指令Mozilla's documentation。它明確指出主機源代碼的樣子:

Internet主機的名稱或IP地址,以及可選的URL方案和/或端口號。該網站的地址可以包括可選的 領先通配符(星號字符,「*」),你可以使用 通配符(同樣,「*」)作爲端口號,這表明所有的法律 端口是有效的源。