为什么Chrome for iOS插入图像/webp内容类型
Why does Chrome for iOS insert image/webp content-type?
我有一个移动web应用程序,正在通过$.get()进行AJAX请求。对于Safari iOS,请求成功,但对于Chrome iOS,请求失败,状态为0,状态文本为"error"。
在我的服务器上使用tcpdump,我可以看到Safari发送/接收以下头:
Accept: */* (outgoing)
Content-Type: text/plain;charset=ISO-8859-1 (returning)
Chrome for iOS增加了一个mime类型"image/webp"到传出的Accept: header和返回的Content-Type是"image/webp":
Accept: */*,image/webp (outgoing)
HTTP/1.1 200 OK
Content-Type: image/webp (returning)
通读jQuery代码,看起来$.get()只解析AJAX响应中的某些内容类型,所以我认为图像mime类型只是被拒绝,导致"错误"状态。
在Chrome for iOS的请求,因为它到达我的服务器,也有这个头:
Via: 1.1 Chrome-Compression-Proxy
…这表明Chrome for iOS已将请求发送到谷歌代理服务器以服务请求(info https://support.google.com/chrome/answer/3517349?hl=en)。似乎这个代理服务器正在设置额外的内容类型,并且不知何故内容类型返回为图像/webp的方式?服务器端代码是RESTful Spring 3;我确实在控制器代码中将内容类型设置为"text/plain",但不知何故,这没有被采取,它仍然返回为"image/webp"。
有没有人遇到过类似的问题并找到了解决方案?我需要有一个返回内容类型的"文本/纯",让数据正确返回到我的应用程序。这个请求在Chrome for Android上也能正常工作,AFAIK,还没有做tcpdump,但应用程序工作正常;
我们遇到了同样的问题:Chrome for iOS更喜欢webp,所以它发送的标题为Accepts: image/webp, */*;q=0.8
。实现这一改变的人显然没有考虑到影响,所以这导致相当多的API返回一个415
更多信息请参见:https://code.google.com/p/chromium/issues/detail?id=169182
最后我们修改了服务器本身,因为它将返回一个415。在响应端,应该一切顺利。
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何将具有文本类型值的var放入jQuery函数中
- javascript解释器如何理解变量的数据类型
- 可变大小的JavaScript字符串如何成为基元类型
- AngularJS指令只识别双向绑定类型
- 在<输入类型=“;文件“/>
- 从查询字符串参数推断出正确的数据类型
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 为什么不'我们在javascript中使用函数参数的数据类型
- Javascript 可选类型提示
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- html5视频中的Youtube类型注释
- 为什么Chrome for iOS插入图像/webp内容类型