Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发送不带'的HTTP响应;t更改用户';s当前页面_Python_Flask_Httpresponse_Wsgi - Fatal编程技术网

Python 发送不带'的HTTP响应;t更改用户';s当前页面

Python 发送不带'的HTTP响应;t更改用户';s当前页面,python,flask,httpresponse,wsgi,Python,Flask,Httpresponse,Wsgi,我有一个JavaScript bookmarklet,当用户在其他页面(即,我的服务器上没有一个页面)时,它会将信息发布到(烧瓶驱动的)服务器。我不想用我的服务器响应劫持用户的会话,从而中断用户的浏览 我最初的想法是,我可以以某种方式抑制来自Flask的HTTP响应;阻止它向客户端发送任何内容,这样它们就不会被神秘地重定向。我希望我可以通过从视图返回空值来实现这一点 然后我认为可能是某种HTTP响应,它让客户机知道信息已成功提交,但会将客户机留在当前页面上。假设标题值为“这是您请求的结果,但您不

我有一个JavaScript bookmarklet,当用户在其他页面(即,我的服务器上没有一个页面)时,它会将信息发布到(烧瓶驱动的)服务器。我不想用我的服务器响应劫持用户的会话,从而中断用户的浏览

我最初的想法是,我可以以某种方式抑制来自Flask的HTTP响应;阻止它向客户端发送任何内容,这样它们就不会被神秘地重定向。我希望我可以通过从视图返回空值来实现这一点


然后我认为可能是某种HTTP响应,它让客户机知道信息已成功提交,但会将客户机留在当前页面上。假设标题值为“这是您请求的结果,但您不应更改当前显示”?

不,这是不可能的。Flask构建在Werkzeug之上,Werkzeug实现了WSGI规范。WSGI周期需要发送对每个请求的响应。删除响应将需要对TCP/IP连接进行控制,控制级别甚至比HTTP低得多。这在WSGI的域之外,因此在Flask的域之外

您可以返回错误代码或空正文,但必须返回某些内容


不,这是不可能的。Flask构建在Werkzeug之上,Werkzeug实现了WSGI规范。WSGI周期需要发送对每个请求的响应。删除响应将需要对TCP/IP连接进行控制,控制级别甚至比HTTP低得多。这在WSGI的域之外,因此在Flask的域之外

您可以返回错误代码或空正文,但必须返回某些内容


回答你的修正问题,是的,有这样的回答。起自(加强调):

10.2.5 204无内容

服务器已完成请求,但不需要返回 实体主体,并且可能希望返回更新的元信息。这个 响应可能包括以下形式的新的或更新的元信息: 实体标题,如果存在,则应与 请求的变体

如果客户端是用户代理,则不应更改其文档视图 来自导致发送请求的源。这一回应是正确的 主要目的是允许输入操作,而无需 导致更改用户代理的活动文档视图,但 任何新的或更新的元信息都应应用于文档 当前在用户代理的活动视图中

204响应不能包括消息体,因此总是 由标题字段后的第一个空行终止

因此,从烧瓶中你可以做这样的事情。请记住,响应不能包含消息体,因此您要发回的任何数据都应该放在cookie中

@app.route('/')
def index():
    r = flask.Response()
    r.set_cookie("My important cookie", value=some_cool_value)
    return r, 204

回答你的修正问题,是的,有这样的回答。起自(加强调):

10.2.5 204无内容

服务器已完成请求,但不需要返回 实体主体,并且可能希望返回更新的元信息。这个 响应可能包括以下形式的新的或更新的元信息: 实体标题,如果存在,则应与 请求的变体

如果客户端是用户代理,则不应更改其文档视图 来自导致发送请求的源。这一回应是正确的 主要目的是允许输入操作,而无需 导致更改用户代理的活动文档视图,但 任何新的或更新的元信息都应应用于文档 当前在用户代理的活动视图中

204响应不能包括消息体,因此总是 由标题字段后的第一个空行终止

因此,从烧瓶中你可以做这样的事情。请记住,响应不能包含消息体,因此您要发回的任何数据都应该放在cookie中

@app.route('/')
def index():
    r = flask.Response()
    r.set_cookie("My important cookie", value=some_cool_value)
    return r, 204

你的客户端将徒劳地等待,你为什么要这样做呢?如果你以某种方式强迫Flask这样做,当浏览器厌倦了等待一段时间后,它最终会超时response@nzjk2-这是一个临时解决办法。我正在使用Javascript bookmarklet向服务器获取信息。此时,“客户端”浏览器位于我无法控制的页面上。不是我的页面,我不想通过劫持用户的会话来中断用户的浏览。稍后,我希望将此操作封装在plug-in.IanAuld中—请参阅我对上面nzjk2的响应。我正在寻找一种通过http将数据发送到服务器而不需要服务器响应的方法。您试图解决的问题是什么?您的客户端将徒劳地等待,你为什么要这么做?如果你强迫Flask这么做,当它厌倦了等待一个response@nzjk2-这是一个临时解决办法。我正在使用Javascript bookmarklet向服务器获取信息。此时,“客户端”浏览器位于我无法控制的页面上。不是我的页面,我不想通过劫持用户的会话来中断用户的浏览。稍后,我希望将此操作封装在plug-in.IanAuld中—请参阅我对上面nzjk2的响应。我正在寻找一种通过http将数据发送到服务器而不需要服务器响应的方法。您试图解决的问题是什么?Dannno-这就是我正在寻找的。在阅读了你的答案之后,很明显,我应该在重述了我的问题之后再看RFC-2616文档。这解决了我在HTTP和Flask方面的问题。谢谢。丹诺-这就是我要找的。在阅读了你的答案之后,很明显,我应该在重述了我的问题之后再看RFC-2616文档。这解决了我在HTTP和Flask方面的问题。谢谢