小编Tla*_*uis的帖子

内容安全策略指令:“框架祖先”缺失但存在?

我正在开发一个nodejs电子应用程序,在我的index.html中我有一个“内容安全策略”,如下所示

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy"
      content="
      default-src     'self' https://*.mydomain.tld;
      script-src      'self' https://*.mydomain.tld;
      style-src       'self' https://*.mydomain.tld;
      img-src         'self' https://*.mydomain.tld;
      font-src        'self' https://*.mydomain.tld;
      connect-src     'self' https://*.mydomain.tld;
      media-src       'self' https://*.mydomain.tld;
      object-src      'self' https://*.mydomain.tld;
      child-src       'self' https://*.mydomain.tld;
      frame-ancestors 'self' https://*.mydomain.tld;
      frame-src       'self' https://*.mydomain.tld;
      worker-src      'self' https://*.mydomain.tld;
      form-action     'self' https://*.mydomain.tld;
      block-all-mixed-content;
      ">
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,它工作得很好,所有资源都加载得很好,但在控制台中我收到以下错误

通过元素传递的内容安全策略可能不包含frame-ancestors指令。索引.html: 4

我一直在尝试消除该错误并寻找可能导致该错误的原因,但找不到任何东西,对我来说一切似乎都是正确的,但我仍然收到错误,我还认为该错误可能是由服务器 @https 引起的://*.mydomain.tld 所以我尝试了这个

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy"
      content="
      default-src     'self';
      script-src      'self';
      style-src       'self';
      img-src         'self';
      font-src        'self';
      connect-src     'self';
      media-src       'self';
      object-src      'self';
      child-src …
Run Code Online (Sandbox Code Playgroud)

content-security-policy

2
推荐指数
1
解决办法
2万
查看次数

参数不是来自url的laravel路由

我有多个看起来像这样的路线:

Route::get('pending-submit', 'CasesController@cases');
Route::get('submited', 'CasesController@cases');
Route::get('closed', 'CasesController@cases');
Run Code Online (Sandbox Code Playgroud)

即使在路由器 API 文档中,我也一直在环顾四周,除了在控制器中创建多个方法之外,我找不到满足我的要求的解决方案。该方法执行完全相同的查询,除了添加一个 where 子句来标识每个案例之间的不同状态,我试图做的是有一个这样的方法

public function cases($whereStatus = 0){
    return Cases::where('status', $whereStatus)->get();
}
Run Code Online (Sandbox Code Playgroud)

而不是这样做:

public function pendingCases(){
    return Cases::where('status', 0)->get();
}

public function submitedCases(){
    return Cases::where('status', 1)->get();
}

public function closedCases(){
    return Cases::where('status', 2)->get();
}
Run Code Online (Sandbox Code Playgroud)

但是我可以想办法将该参数从路由传递给方法,所以我现在必须为每个路由创建一个对我来说似乎没有必要的方法。我知道我可以只生成带有 get 参数的 url,但我想让它更简洁,有没有办法让我添加该参数而不在 url 中添加它?

顺便说一句,我也尝试过这样的事情,但没有成功:

Route::get(
    'pending-submit',
    array(
        'uses'   => 'CasesController@cases',
        'params' => array(
            'filter' => 0
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

编辑:

我知道我可以创建像https://someurl.com/cases?status=0这样的 URL,也可以像https://someurl.com/cases这样的URL需要不同的方法,但是我想要的是像这样的 URL https://someurl.com/cases并有一个方法,其中参数由路由器传递,而不是我从请求中获取,因此我可以这样做:

public function myMethod($param){
    /*
     * …
Run Code Online (Sandbox Code Playgroud)

php routing laravel-5.1

-1
推荐指数
1
解决办法
4943
查看次数