拒绝得到不安全的标题" ETag"

时间:2014-05-16 23:35:00

标签: javascript azure azure-mobile-services

我使用的是azure Mobile服务版" MobileServices.Web-1.1.5.min.js"当我更新数据库中的表时,我在调试控制台上收到此错误(" CHROME")

> Refused to get unsafe header "ETag" MobileServices.Web-1.1.5.min.js:2
> getItemFromResponse MobileServices.Web-1.1.5.min.js:2 (anonymous
> function) MobileServices.Web-1.1.5.min.js:2 c
> MobileServices.Web-1.1.5.min.js:2 (anonymous function)
> azureService.js?bust=1400282269337:10 r.onreadystatechange

旧版本的MobileServices没有发生这种情况。

如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:1)

简短的回答是,你无法做任何事情来纠正它。

此错误取决于浏览器实现,您可以放心地忽略它。它与移动服务中的CORS配置有关。当表的更新成功完成时,MobileServices将更新的对象发送回响应中。其中一个响应标题是" ETag"一些浏览器/版本错误地认为是危险的。据我所知,您无法通过代码消除控制台错误。

如果您在Firefox中运行相同的确切代码,则不会收到错误。

答案 1 :(得分:1)

可能只需创建一个PHP"代理"使用cURLfile_get_content来获取远程内容。

您可以添加标题Access-Control-Allow-Origin: *或将*替换为您的域名。最后一件事是限制标题曝光的Access-Control-Expose-Headers

例如,如果您选择使用access-control-expose-headers:Client-Protocol进行回复 - 您的基于JavaScript的xhr对象 (例如)

- 呼叫xhr.getAllResponseHeaders()将为您提供pragma, content-type, cache-control, expires (如果存在),跳过一些更实用的内容,例如Content-LengthX-...那些.. :(