5

我目前正在使用一个 Javascript 应用程序,该应用程序必须使用 Werkzeug 对 Web 服务进行跨域请求(我可以访问 javascript-client 和 werkzeug-server)

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

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

我的 JS 应用程序从http://localhost/MyApp. 这有效(-> 服务器端的处理通过,客户端接收到正确的数据),但前提是 generate_response 返回一个继承 Werkzeug 类的类的实例BaseResponse

但是,这是我的问题,如果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')]
    ...

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

4

1 回答 1

1

自 Werkzeug 1.0.0 里程碑起,此问题已得到修复

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

于 2020-03-10T05:58:54.750 回答