在 Werkzeug-Exception 上设置标题

Dai*_*shy 5 javascript werkzeug cors

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

est*_*est 1

从 Werkzeug 1.0.0 里程碑开始,此问题已得到修复

https://github.com/pallets/werkzeug/issues/131