当前位置: 首页 > 面试题库 >

将响应标头添加到Flask Web应用

暴博远
2023-03-14
问题内容

我有一个Flask Web应用程序,它使用render_template如下,我需要在响应中添加一个Content-Security-Policy作为附加的HTTP响应标头。我尝试了以下方法,但都失败了,并给了我500。

1。

from flask import \
Flask, \
render_template
app = Flask(__name__,template_folder='tmpl')
@app.route('/')
def index():
    resp =make_response(render_template('index.html'))
    resp.headers['Content-Security-Policy']='default-src \'self\'' 
    return resp

if __name__ == '__main__':
app.run(host='0.0.0.0', port=3001)

2。

@app.route('/')
def index():
    resp =render_template('index.html')
    resp.headers.add('Content-Security-Policy','default-src \'self\'') 
    return resp

if __name__ == '__main__':
app.run(host='0.0.0.0', port=3001) 

这里有什么问题?

在终端上,以localhost:3001的身份访问Web应用程序时,我看到以下内容

127.0.0.1–[2015年4月6日01:45:01]“ GET / HTTP / 1.1” 500-


问题答案:

render_template返回字符串,而不是响应。从视图返回的字符串由Flask自动包装在响应中,这就是为什么你可能会感到困惑的原因。使用呈现的模板构造响应。

from flask import make_response
r = make_response(render_template('index.html'))
r.headers.set('Content-Security-Policy', "default-src 'self'")
return r


 类似资料:
  • 我非常确定“Expires”是有效的HTTP响应头类型。但是当我尝试在代码中设置它时:(这是在ActionFilter.OnActionExecuted方法中) 我最后有一个例外: InvalidOperationException:错误使用的标头名称。确保请求头与HttpRequestMessage一起使用,响应头与HttpResponseMessage一起使用,内容头与HttpContent对

  • 问题内容: 我正在尝试向一些Web服务调用中添加一些响应标头。我使用CXF 2.1.2和JAX- RS编写了Web服务。我需要返回一个对象,我还想向Response添加一些标头。 在不返回javax.ws.rs.core.Response对象的情况下 ,如何在响应中添加标头并仍然返回javabean? 问题答案: 您可以通过Web服务中的@Context注释注入对实际HttpServletResp

  • 我通过使用承载令牌实现了对SpringBoot API的授权,当登录成功时,该令牌被添加到响应的“授权”头中,然后需要通过React项目的登录获取方法读取该令牌,并添加到后续请求的“授权”头中。 不幸的是,虽然我被告知这是不可能使用Fetch,所以我现在试图重构我的登录功能,以便它返回响应正文中的令牌,而不是标题。 我不知道如何做到这一点,目前没有返回JSON正文对象,只有标头,我将不得不更改我的

  • 问题内容: 我有一个角度应用程序,需要将其重定向到外部非角度html页面,所以我认为我可以使用将该角度应用程序重定向到我的外部站点。这实际上工作正常,但是,我有一个nodejs / express后端,在提供任何内容(甚至静态内容)之前检查auth令牌。 这要求在http请求的标头中发送身份验证令牌。现在的问题是: 可以/如何在发送前更改更改后的请求中添加身份验证令牌? 问题答案: 使用浏览器时,

  • 我正在开发一个带有Spring Cloud的网关,我需要拦截消耗Oauth的请求,然后获取响应并添加带有jwt值的标头(Ouath的响应) 我的筛选代码: 我的服务: 完整代码Gitlab 错误: java.lang.IllegalStateException:块()/块第一()/块最后()被阻塞,线程reactor-超文本传输协议-nio-3不支持 当我使用String token=rep.bl

  • 我有以下代码: 但我得到了这个错误:导致:org.springframework.web.client.RestClientExcture:无法提取响应:没有合适的HttpMessageConzer找到响应类型[类com.xxx.test.YY]和内容类型[应用程序/xml; charset=ISO-8859-1] 如何添加MediaType。应用程序将JSON添加到标头,并将标头添加到restT