我目前正在使用一个 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 之一HttpExceptions
,response
则没有要附加的 headers 字段。看起来,标题在 Werkzeug-Exceptions 中是固定的:
class HttpException(Exception):
....
def get_headers(self, environ):
"""Get a list of headers."""
return [('Content-Type', 'text/html')]
...
有没有一种简单的方法来解决这个问题,就像解决这个问题一样,我可以将我的自定义标头附加到异常中,还是我必须子类化 Exception-Baseclass 以添加对我的标头的支持?这是故意的还是值得报告的设计问题?最后但并非最不重要的一点是:我是否误解了这里的某些东西,而这根本不是应该做的事情?