小编edA*_*a-y的帖子

如何使用Credentials,HTTP Authorization(CORS)创建XMLHttpRequest跨域?

我无法使用Authorization标头创建跨域请求(使用Firefox测试).我有没有身份验证的请求,但是一旦我设置withCredentials为true,我就无法再从服务器读取响应了.

在服务器上,我发回这些标题(使用after_requestFlask中的方法):

resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Credentials'] = 'true'
resp.headers['Access-Control-Allow-Methods'] = 'POST, OPTIONS'
resp.headers['Access-Control-Allow-Headers'] = 'Authorization'
Run Code Online (Sandbox Code Playgroud)

Firefox实际上没有OPTIONS调用.在客户端,我进行XMLHttpRequest调用:

var xhr = new XMLHttpRequest()
xhr.open( 'POST', 'http://test.local:8002/test/upload', true)
xhr.withCredentials = true
xhr.onreadystatechange = function() {
    console.log( xhr.status, xhr.statusText )
}
xhr.send(fd)
Run Code Online (Sandbox Code Playgroud)

如果没有withCredentials设置,日志语句会将预期信息记录到控制台.一旦我设置了值,但xhr不允许访问,我只写一个0值和一个空字符串.我没有在这里设置授权标题,但这不应该影响我读取结果的能力.

如果我尝试在"打开"命令中添加用户名/密码,我会收到NS_ERROR_DOM_BAD_URI: Access to restricted URI denied错误消息.

我究竟做错了什么?

http xmlhttprequest cors

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

获取git当前分支/标记名称

如何获取工作副本的当前分支或标记名称?我已经看到指示rev-parse --abbrev-ref HEAD将给出分支名称的引用,但是如果checkout是标记,则这不起作用,在这种情况下它只返回'HEAD'.我需要以某种方式获取这些修订的标记名称.

要清楚,我想要两个可能的名字之一:

  1. 如果当前结账是分支的HEAD,我想要分支名称
  2. 如果它是一个分离的HEAD,我想要标签名称(假设有一个标签)

git branch git-checkout git-branch

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

变量列表中的逗号是序列点吗?

在下面的代码类型中,每个变量构造之间是否有一个序列点,或者结果是否未定义?

int a = 0;
int b = a++, c = a++;
Run Code Online (Sandbox Code Playgroud)

我无法在标准中找到这里对序列点的具体引用.这是否意味着它是未定义的,或者只是我在搜索中失败了?表达式的完成是一个序列点,但上面的初始化也算了吗?

c++ variables comma sequence-points

21
推荐指数
2
解决办法
1230
查看次数

Qt正确显示/显示/提升窗口的方式

我经常发现我需要展示并将窗户带到前面.例如,当用户尝试重新加载同一文档时,我只需调出旧文档.要做到这一点,我有这样的代码:

widget->raise();
widget->activateWindow();
widget->showNormal();
Run Code Online (Sandbox Code Playgroud)

它开始觉得我错过了一个快捷功能.当然这种行为很常见.是否有一些首选功能可以完成上述所有操作和/或在每个目标操作系统上做正确的操作?


注意:我刚注意到一个缺陷,因此特殊功能现在更为重要.如果窗口最小化,activateWindow则不起作用.即使您将上述内容重新排序,也会发生这种情况showNormal.

c++ qt pyqt4

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

Flask结束响应并继续处理

Flask中有没有办法将响应发送给客户端,然后继续进行一些处理?我有几个要完成的簿记任务,但我不想让客户等待.

请注意,这些实际上是我想要做的很快的事情,因此创建新线程或使用队列在这里并不合适.(这些快速的事情之一实际上是在作业队列中添加了一些东西.)

python flask

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

从另一个线程访问线程本地

如何从另一个线程读取/写入线程局部变量?也就是说,在线程AI中想要访问线程B的线程本地存储区域中的变量.我知道另一个线程的ID.

该变量__thread在GCC中声明.目标平台是Linux,但独立性可能不错(但GCC具体可行).

缺少线程启动挂钩,我无法在每个线程的开头简单地跟踪此值.需要以这种方式跟踪所有线程(不仅仅是特别启动的线程).

像boost boost_local_storage或使用pthread键的更高级别的包装器不是一个选项.我要求使用真正的__thread局部变量.


第一个答案是错误的:人们不能将全局变量用于我想做的事情.每个线程必须有自己的变量副本.此外,__thread出于性能原因,这些变量必须是变量(同样有效的解决方案也可以,但我不知道).我也不控制线程入口点,因此这些线程不可能注册任何类型的结构.


线程本地不是私有的:另一个关于线程局部变量的误解.这些线程绝不是某种私有变量.它们是全局可寻址的内存,其限制是它们的生命周期与线程相关联.任何线程中的任何函数,如果给出指向这些变量的指针,都可以修改它们.上面的问题主要是关于如何获得指针地址.

c++ linux multithreading gcc thread-local-storage

18
推荐指数
3
解决办法
9126
查看次数

并行运行bash命令,跟踪结果和计数

我想知道如果可能的话,我可以在BASH中创建一个简单的作业管理来并行处理多个命令.也就是说,我有一个很大的命令列表要运行,我想在任何给定的时间运行其中两个.

我对bash有很多了解,所以这里有一些要求让它变得棘手:

  • 命令具有可变的运行时间,所以我不能只生成2,等待,然后继续下两个.一旦完成一个命令,就必须运行下一个命令.
  • 控制过程需要知道每个命令的退出代码,以便它可以保持总共失败的数量

我在想我可以使用trap但我没有看到一个简单的方法来获取处理程序中的子项的退出值.

那么,关于如何做到这一点的任何想法?


好吧,这里有一些概念代码可能有用,但它打破了bash:无效的命令行生成,挂起,有时是核心转储.

# need monitor mode for trap CHLD to work
set -m
# store the PIDs of the children being watched
declare -a child_pids

function child_done
{
    echo "Child $1 result = $2"
}

function check_pid
{
    # check if running
    kill -s 0 $1
    if [ $? == 0 ]; then
        child_pids=("${child_pids[@]}" "$1")
    else
        wait $1
        ret=$?
        child_done $1 $ret
    fi
}

# check by copying pids, clearing list and then …
Run Code Online (Sandbox Code Playgroud)

bash

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

GCC打开枚举,保留缺少警告但使用默认值

使用GCC,如果您switch在某个enum值上并且其中一个枚举缺少一个case语句,则会发出警告.当您添加default项目时,将不再发出警告,这在一般情况下是有意义的.

有没有办法使用一个default语句,如果不enum涵盖所有值,仍然会有警告?由于我的函数可能会处理不纯的输入,我想要涵盖一般情况,但仍然会收到关于错过枚举情况的编译器警告.

目前我最终在switch语句后分配了一个默认值.

c++ gcc

17
推荐指数
2
解决办法
9249
查看次数

cmake add_definitions和COMPILE_DEFINITIONS,如何看待它们

我想看看我的CMake文件中当前的编译器定义集是什么.Ones自动指定,我添加的将是伟大的.该COMPILE_DEFINITIONS宏似乎不包含 - 尽管文档说的是什么.

例如,在下面的设置中,消息从不包含 GUI_BUILD

add_definitions( -DGUI_BUILD )
message( "COMPILE_DEFINITIONS = ${COMPILE_DEFINITIONS}" )
Run Code Online (Sandbox Code Playgroud)

我不需要在最终形式中看到它们,我只想快速输出以帮助验证所有内容都已正确配置.

cmake

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

C++保证和POD类数据的名称,具有memcpy功能

在另一个问题中,我错误地使用术语POD来指代实际上不是POD类型的数据类型(由于具有构造函数).现在,我已经查看了标准,找不到我想要的正确名称.我实际上也无法保证实际允许复制.

我所说的数据类型是POD,但可能包含函数,包括构造函数,但与等效的POD类型相比,不应改变其对齐或大小特征.

在标准的3.9节中,它指出POD数据可以用memcpy复制到另一个对象,或者复制到字符数据和后面.没有这种非POD数据的保证.

但是,对象的对象表示在同一部分中定义.它被定义为可以相信任何两个相同类型的对象可以通过memcpy安全地复制.

所以我的问题是:

  1. 具有memcpy的副本实际上是否保证对这些对象是安全的?
  2. 如果是,那么为什么有关于memcpy和POD的特别说明?
  3. 这种类型的数据是否有memcpy安全的名称?

我所说的对象类型的一个简单示例:

struct ex_struct
{
  int a,b,c,d;
  ex_struct() : a(123) { }
}
Run Code Online (Sandbox Code Playgroud)

阅读C++ 0x草案,我的结构似乎是一个简单的可复制类(9.1).我相信这意味着memcpy是安全的.

c++ c++11

17
推荐指数
1
解决办法
1619
查看次数