我使用的是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没有发生这种情况。
如何解决这个问题?
提前致谢。
答案 0 :(得分:1)
简短的回答是,你无法做任何事情来纠正它。
此错误取决于浏览器实现,您可以放心地忽略它。它与移动服务中的CORS配置有关。当表的更新成功完成时,MobileServices将更新的对象发送回响应中。其中一个响应标题是" ETag"一些浏览器/版本错误地认为是危险的。据我所知,您无法通过代码消除控制台错误。
如果您在Firefox中运行相同的确切代码,则不会收到错误。
答案 1 :(得分:1)
您可能只需创建一个PHP"代理"使用cURL
或file_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-Length
和X-...
那些.. :(