小编Dai*_*shy的帖子

在 Werkzeug-Exception 上设置标题

我目前正在使用一个 Javascript 应用程序,它必须使用 Werkzeug 对网络服务进行跨域请求(我可以访问 javascript 客户端和 werkzeug 服务器)

现在,经过一些阅读/搜索,对于我添加的服务器上的响应(示例代码):

response = generate_response(request)
response.headers.add('Access-Control-Allow-Origin', 'http://localhost')
Run Code Online (Sandbox Code Playgroud)

我的 JS-App 从http://localhost/MyApp. 这有效(-> 在服务器端进行处理,客户端接收正确的数据),但前提是 generate_response 返回继承 Werkzeug 的BaseResponse-Class的类的实例。

但是,这是我的问题,如果generate_response返回 Werkzeugs 之一HttpExceptionsresponse则没有要附加的 headers 字段。看起来,标题在 Werkzeug-Exceptions 中是固定的:

class HttpException(Exception):
    ....
    def get_headers(self, environ):
        """Get a list of headers."""
        return [('Content-Type', 'text/html')]
    ...
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以解决这个问题,就像在解决这个问题时一样,我可以将我的自定义标头附加到异常中,或者我是否必须子类化 Exception-Baseclass 以添加对我的标头的支持?这是故意的还是值得报告的设计问题?最后但并非最不重要的一点:我是否误解了这里的某些内容,而那完全不是应该的方式?

javascript werkzeug cors

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

mkdir在/ tmp目录中失败

我正在尝试在php中创建一个文件夹,并且每个它与/tmp/...路径一起使用时代码类型失败:

exec("mkdir -p /tmp/test/ 2>&1", $output, $return_code);
// $output is empty, $return_code is 0
//mkdir("/tmp/test/"); // Alternative to above

is_dir("/tmp/test/"); // returns true
is_readable("/tmp/test/"); // returns true
Run Code Online (Sandbox Code Playgroud)

但是,如果我检查/tmp-Folder没有这样的目录,并且该文件夹上的所有后续写入或读取操作都会失败,因为该文件夹不存在.权限/tmp是正确的(root:root with 777),我可以sudo -u http mkdir -p /tmp/test没有问题.如果我使用tmp/test例如,代码将运行正常并在php-skript的目录中创建一个文件夹(它位于属于我的文件夹中,而不是http用户......)

任何想法为什么PHP无法创建一个文件夹/tmp/但报告它在那里?

编辑:指定读取和写入操作:这些操作不是来自我自己的脚本,而是来自外部skripts,由php脚本调用以执行不同的任务.一旦所有这些文件成功完成,文件夹就会被压缩并复制到其他地方.

编辑:运行后立即 exec("mkdir -p /tmp/testfolder");

[daishy@littlezombie tmp]$ pwd
/tmp
[daishy@littlezombie tmp]$ ls -al
insgesamt 8
drwxrwxrwt 21 root   root   440  3. Aug 18:56 .
drwxr-xr-x 20 root   root  4096 10. Jun 16:49 …
Run Code Online (Sandbox Code Playgroud)

php exec mkdir

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

标签 统计

cors ×1

exec ×1

javascript ×1

mkdir ×1

php ×1

werkzeug ×1