我目前正在使用一个 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 之一HttpExceptions,response则没有要附加的 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 以添加对我的标头的支持?这是故意的还是值得报告的设计问题?最后但并非最不重要的一点:我是否误解了这里的某些内容,而那完全不是应该的方式?
我正在尝试在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)