Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs $http.post连接被拒绝,因为违反了内容安全策略指令';连接src';_Angularjs_Cordova_Content Security Policy - Fatal编程技术网

Angularjs $http.post连接被拒绝,因为违反了内容安全策略指令';连接src';

Angularjs $http.post连接被拒绝,因为违反了内容安全策略指令';连接src';,angularjs,cordova,content-security-policy,Angularjs,Cordova,Content Security Policy,在cordova应用程序中发出$http post请求时,我收到一个错误 '拒绝连接到“”,因为它违反了以下内容安全策略指令:“connect src*”' 以下是控制器中的post请求 $http.post("https://localhost:3000/verifyPerson" ).then( function(response){ console.log('http success response handler'); }, function(r

在cordova应用程序中发出$http post请求时,我收到一个错误 '拒绝连接到“”,因为它违反了以下内容安全策略指令:“connect src*”'

以下是控制器中的post请求

$http.post("https://localhost:3000/verifyPerson" ).then(
    function(response){
        console.log('http success response handler');
    },
    function(response){
        console.log('http error response handler  ' +response.status);  
    }
);
以下是在我的节点服务器中为内容安全策略和访问控制设置的响应头:

app.use(function(req, res, next){
    res.header("Content-Security-Policy", 
 "default-src 'self';
  script-src 'self';
  object-src 'none';
  img-src 'self';
  media-src 'self';
  frame-src 'none';
  font-src 'self' data:;
  connect-src 'self' https://localhost:3000/*;
  style-src 'self'");
  next();
});

app.all('*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
});
下面是cordova应用程序的config.xml文件中的访问源和允许导航标记

 <access origin="http://localhost:3000/*" subdomains="true" /> 
 <allow-navigation href="http://localhost:3000/*" />

下面是关联html页面中内容安全策略的元标记

<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 *; img-src 'self' data: content:;connect-src https://localhost:3000/*;">  


您能告诉我成功完成此post请求所缺少的内容吗?

您是否尝试过删除通配符,如:
connect srchttps://localhost:3000;?是的,我删除了如上所述的通配符,还修改了config.xml中的访问源和允许导航标记,如下所示。现在我收到一个响应。状态为-1(即网络请求超时)。这是一个好迹象:您的内容安全策略问题似乎已得到解决!你在测试什么设备?节点Web服务器实际上是您的
localhost
?感谢您的回复。谢谢。这是Nexus5,设备模拟器。是,节点服务器是我的本地主机。然而,我用ionic框架取代了cordova,现在我能够从android发出http get和post请求。所以这个问题解决了。您是否尝试过像这样删除通配符:
connectsrchttps://localhost:3000;?是的,我删除了如上所述的通配符,还修改了config.xml中的访问源和允许导航标记,如下所示。现在我收到一个响应。状态为-1(即网络请求超时)。这是一个好迹象:您的内容安全策略问题似乎已得到解决!你在测试什么设备?节点Web服务器实际上是您的
localhost
?感谢您的回复。谢谢。这是Nexus5,设备模拟器。是,节点服务器是我的本地主机。然而,我用ionic框架取代了cordova,现在我能够从android发出http get和post请求。所以这个问题就解决了。