我正在使用qooxdoo 3.0.1进行Web应用程序。 在当前状态下,应用程序在谷歌浏览器中运行良好,但在iceweasel 17和firefox 23
当我使用qx.bom.request.Xhr()发送xhr时出现问题 在控制台中,我收到以下消息
异常......“失败”nsresult:“0x80004005(NS_ERROR_FAILURE)”
location:“JS frame :: http:// localhost:8000 / qooxdoo / framework / source / class / qx / bom / request / Xhr.js ::
.members.send :: line 387“data:no]
在firefox中我禁用了安全浏览和严格的原始策略,因为请求不是在同一台服务器上进行的,我甚至尝试在firefox中使用Force CORS插件但没有结果。
有什么建议吗?
答案 0 :(得分:0)
当您运行此游乐场样本时,您是否在Iceweasel 17 / Firefox 23的浏览器控制台中看到了响应?
在这个示例中,我正在使用jsontest.com [1]并且它的echo服务[2]以Access-Control-Allow-Origin
标头(值为*
)响应,所以希望你能够验证此代码段是否也在上述浏览器版本中运行。
我假设您使用GET
并且没有发送任何数据,所以如果这是错误的话请在此纠正。
好的,那么你怎么能对你的开发环境做些什么显然缺少一些让CORS正常工作的东西:
您是否掌控了服务器?你可以添加自定义标题吗?如果答案是“是”,请确保您的服务器使用此标头响应(您不应使用通配符 在开发环境中仅用于生产 - 参见[3]和[4]) - 就像jsontest.com提供的服务一样:
Access-Control-Allow-Origin: *
这是最简单和首选的方法,不需要任何浏览器配置。
如果您不控制服务器,那么您提到的“强制CORS”Firefox附加组件[5]应该可以解决问题。只需将?alloworigin=false
附加到我在游乐场示例中使用的http://echo.jsontest.com网址,以防止jsontest.com发送Access-Control-Allow-Origin
标头。安装并手动启用“Force CORS”后,我也可以在浏览器控制台中看到预期的响应。
所以我的假设是,当你禁用“安全浏览和严格的原始政策”时,你可能会搞砸了。您是否可以恢复原始设置并尝试仅使用服务器配置适配或“强制CORS”附加组件?您是否在附加栏中手动启用了“强制CORS”附加组件?
另见: