form action链接到某php文件时为何会下载一个文件,php-为什么Firefox会提示下载经过POST的文件?...

这是最奇特的事情.

它来自内部旧版CMS.

当我尝试提交更改时,它提示保存链接在表单的action属性中的文件.

标头

请求

POST /~site/edit/articles/article_save.php?id=54 HTTP/1.1

Host: example.com

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 115

Connection: keep-alive

Referer: http://example.com

Content-Type: multipart/form-data; boundary=---------------------------10102754414578508781458777923

Content-Length: 940

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="title"

Home Content

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="catid"

18

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="activecheck"

1

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="image"

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="contentWidgToolbarSelectBlock"

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="content"

Edit your article in this text box.

-----------------------------10102754414578508781458777923

Content-Disposition: form-data; name="contentWidgEditor"

true

-----------------------------10102754414578508781458777923--

响应

HTTP/0.9 200 OK

然后Firefox显示出来…

我不能从响应标头中确定为什么提示打开/保存.它一直有效.该站点上的所有其他PHP文件都可以正常工作.

有人知道吗?

谢谢

更新资料

显然,它只是使Safari崩溃.

我在CMS文章中添加了图片,并且由于某些未知的原因,图片已正确保存.我无法解释原因.

解决方法:

似乎Web服务器认为您的请求不是HTTP / 1.0请求,因此从回头到需要担心的标头之前回退到史前的HTTP / 0.9.

因此,它返回HTTP / 0.9响应. HTTP / 0.9响应中没有Content-Type标头,因此浏览器不知道它返回的是哪种文件,因此将其视为application / octet-stream并提示保存.

请求是如何生成的,您如何检查它?因为这看起来很可疑:

Content-Length: 940

-----------------------------10102754414578508781458777923

在这两行之间应该有另一个换行符.必须使用双换行符来表示标题的末尾.

(由于诸如此类的Windowsy正在吃掉CRLF序列并将它们转换成普通的LF换行符,从而阻止它们作为HTTP / MIME行尾使用,因此也会出现这种问题.)

标签:firefox,http-headers,php

来源: https://codeday.me/bug/20191024/1917766.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值