小编Nis*_*ssa的帖子

Chrome不会将cookie发送回iframe服务器

我正在用反应路由器制作一个SPA.只需一条路线,我就必须在iframe中通过SAML 2.0显示第三方的身份验证页面.当加载帧src时,第三方在iframe中设置cookie.但是,Chrome不会在iframe中发送从第三方收到的Cookie,以便在同一iframe中跟踪http请求.

如果有人能够了解Chrome为什么与其他浏览器完全不同,例如Firefox,Safari,我们真的很感激.

cookies iframe google-chrome

11
推荐指数
0
解决办法
672
查看次数

使用std :: optional参数调用函数

我有一个功能,其签名是:

void func(std::optional<std::string> os = std::nullopt);
Run Code Online (Sandbox Code Playgroud)

(我正在走样,std::experimental::optional直到std::optional官方可用.)

但是,我很难干净地称呼它.编译器将拒绝执行两个隐式转换(const char*std::stringstd::optional<std::string>)与原始C-字符串字面来调用它.我可以这样做:

func(std::string("Hello"));
Run Code Online (Sandbox Code Playgroud)

并且编译器将确定需要a std::optional,并进行转换.但是,这太冗长了.感谢C++ 11,我也可以这样做:

func({"Hello"});
Run Code Online (Sandbox Code Playgroud)

虽然这样做更好,但仍然不理想.我希望能够像任何其他需要的一样调用此函数std::string.这可能吗?使函数采用另一种参数类型是可以的,只要它的行为类似于/可以直接转换为std::optional.谢谢.

c++ optional c++-standard-library boost-optional

10
推荐指数
2
解决办法
3057
查看次数

合并具有交替值的两个数组

我想合并2个不同长度的数组:

let array2 = ["a", "b", "c", "d"];
let array2 = [1, 2];

let outcome = ["a",1 ,"b", 2, "c", "d"] 
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法呢?

编辑:我期望的结果是["a", 1 ,"b", 2, "c", "d"]

javascript functional-programming ecmascript-6

10
推荐指数
4
解决办法
3751
查看次数

从Dockerfile写入docker卷不起作用

请考虑以下Dockerfile:

FROM phusion/baseimage
VOLUME ["/data"]
RUN touch /data/HELLO
RUN ls -ls /data
Run Code Online (Sandbox Code Playgroud)

问题:"/ data"目录不包含"HELLO"文件.此外,任何其他尝试写入卷目录(通过echo,mv,cp,...)都是不成功的 - 该目录始终为空.没有显示错误消息.

关于这个问题,我在文档或stackoverflow上找不到任何内容.

这是众所周知的还是新的?

docker version 收益:

Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.1
Git commit (client): fa7b24f
OS/Arch (client): linux/amd64
Server version: 1.2.0
Server API version: 1.14
Go version (server): go1.3.1
Git commit (server): fa7b24f
Run Code Online (Sandbox Code Playgroud)

volume docker

9
推荐指数
1
解决办法
1416
查看次数

找不到类“App\Http\Controllers\Controller” - Laravel 5.2

我是新来的,但我已经在这里检查了有关我的问题的所有解决方案,但仍然没有解决。

我想在 Laravel 5.2 中使用教程创建简单的应用程序,但我无法让我的控制器工作。

我将我的应用程序命名为“test”,这是一个代码:

页面控制器.php:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
         return view('about');   
    }
}
Run Code Online (Sandbox Code Playgroud)

路线.php:

Route::get('about', [
    'as' => 'about',
    'uses' => 'PagesController@getAbout'
]);
Run Code Online (Sandbox Code Playgroud)

和 Controller.php(默认):

<?php

namespace test\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
Run Code Online (Sandbox Code Playgroud)

你看这里有什么问题吗?我确定所有文件都在正确的文件夹中。

php laravel-routing laravel-5 laravel-5.2

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

为什么Apache HttpClient 4.4拒绝www.googleapis.com作为有效的主机名?

我最近从4.3切换到HttpClient 4.4,我得到了SSLPeerUnverifiedException这样的说法:

Host name 'www.googleapis.com' does not match the certificate subject provided by the peer (CN=*.googleapis.com, O=Google Inc, L=Mountain View, ST=California, C=US)
Run Code Online (Sandbox Code Playgroud)

问题来自于HttpClient现在使用publicsuffix.org列表进行验证(参见SSLConnectionSocketFactory.java的源代码).

解决此问题的一种方法是关闭主机名验证:

CloseableHttpClient httpClient = HttpClients.custom().
   setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
Run Code Online (Sandbox Code Playgroud)

...但我试图理解为什么通配符与客户端不匹配以及为什么它被认为太宽泛(参考).

RFC2818规范说:

名称可以包含通配符
字符*,其被认为是匹配任何单个域名
组件或组件片段.例如,*.a.com匹配foo.a.com但
不匹配bar.foo.a.com.f*.com匹配foo.com但不匹配bar.com.

这是否意味着HttpClient 4.4不符合规范?

ssl apache-httpclient-4.x

7
推荐指数
1
解决办法
6214
查看次数

为什么document.all定义但typeof document.all返回"undefined"?

我正在对JavaScript的typeof运算符进行一些研究,并偶然发现了以下奇怪之处:

例外

所有当前浏览器都公开document.all类型为Undefined 的非标准主机对象.

typeof document.all === 'undefined';
Run Code Online (Sandbox Code Playgroud)

虽然规范允许非标准外来对象的自定义类型标记,但它要求那些类型标记与预定义标记不同.document.all具有类型标签的情况'undefined'必须归类为违反规则的例外情况.

(来源)

我在浏览器中设置了以下内容来测试它:

console.log("typeof: " + typeof document.all);
console.log("toString: " + document.all);
Run Code Online (Sandbox Code Playgroud)

它产生了:

typeof: undefined
toString: [object HTMLAllCollection]
Run Code Online (Sandbox Code Playgroud)

那么为什么会document.all这样呢?既然document.all是一个对象(在我的浏览器中定义),不应该typeof返回"object",不是"undefined"吗?

javascript dom

7
推荐指数
1
解决办法
1309
查看次数

Intellij with Git - 内容仅在行分隔符中有差异

我刚刚用git安装了intellij并从框架中下载了代码.在这样做之后,我立即得到数百个(成千上万个)文件,说'内容只有行分隔符'.如果我将这些从CRLF更改为LF,则没有任何区别.知道如何解决这个问题吗?

java git merge intellij-idea rebase

7
推荐指数
1
解决办法
3125
查看次数

如何根据测试的固定装置签名动态地将新固定装置添加到测试中

所以我想实现的是使用 pytest 自动模拟各个模块中的函数。所以我在 conftest.py 中定义了这个:

import sys
import __builtin__
from itertools import chain


# Fixture factory magic START
NORMAL_MOCKS = [
    "logger", "error", "logging", "base_error", "partial"]
BUILTIN_MOCKS = ["exit"]


def _mock_factory(name, builtin):
    def _mock(monkeypatch, request):
        module = __builtin__ if builtin else request.node.module.MODULE
        ret = Mock()
        monkeypatch.setattr(module, name, ret)
        return ret
    return _mock


iterable = chain(
    ((el, False) for el in NORMAL_MOCKS),
    ((el, True) for el in BUILTIN_MOCKS))
for name, builtin in iterable:
    fname = "mock_{name}".format(name=name)
    _tmp_fn = pytest.fixture(name=fname)(_mock_factory(name, builtin))
    _tmp_fn.__name__ …
Run Code Online (Sandbox Code Playgroud)

python pytest

7
推荐指数
1
解决办法
5703
查看次数

如何从 HTTPS 网站发出 HTTP 请求?

我有一个基于 HTTPS 的网站,我想向 HTTP 端口发出 GET 请求。目前,当我尝试时,我收到以下错误:

cannot load ${url} due to access control checks.

this page was not allowed to display insecure content from ${http-url}
Run Code Online (Sandbox Code Playgroud)

我考虑过将请求放入 AWS lambda 函数并调用 labmda 函数,因为这会给我一个 HTTPS URL?这可能吗。

即便如此,我想知道最简单的方法是什么,因为我对 AWS 不太了解,所以我必须学习它。

const url = 'http://website/fmi/xml/fmresultset.xml?-dbnames';

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function (params) { 
  console.log(xhttp.status); 
  if (xhttp.readyState ==4) { 
    if (xhttp.status == 200) { 
      console.log('===='); 
      console.log(xhttp.responseText); 
    } 
  } 
} 
xhttp.open("GET", url, true); 
xhttp.send();
Run Code Online (Sandbox Code Playgroud)

javascript https http aws-lambda

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