我有一个这样的表格:
<form method="POST" enctype="multipart/form-data">
<input type='submit' name='foo' />
</form>
提交该表单时,我有一些PHP呈现图像:
<img src="http://s3-external-1.amazonaws/bucket/example.jpg?AWSAccessKeyId=foo&Signature=bar&expires=111111" />
问题是Internet Explorer 11(以及我认为的其他版本)正在该GET请求上发送Content-Type: multipart/form-data; boundary=---------------------------7dfcd3b0f0a
。
当AWS收到请求时,他们说签名不匹配(这是正确的)。
几乎没有奇怪的怪癖:
multipart/form-data
,则内容类型未设置为任何值(因此可以正常工作)我尝试使用/ content-type
发出cURL请求。它失败了,没有成功。
为什么IE会在表单提交后在结果页面上向所有GET添加content-type
?
更新:它似乎不会发生在所有表单中 - 但是当我们从应用程序的某个部分提交时,会发生这种情况。我可以找到,提交页面上的表单是相同的,但表单数据在呈现图像之前通过不同的服务器端函数。但是,无法看到这会如何影响IE添加内容类型。