【问题标题】:KendoUI pages returning 412 (Precondition Failed) after OSX 10.9 UpgradeOS X 10.9 升级后 Kendo UI 页面返回 412(前提条件失败)
【发布时间】:2013-10-29 11:07:58
【问题描述】:

我有一个在 localhost 上运行的站点,它使用从 kendoPanelBar 加载的不同 KendoUI 网格。在我更新到 OSX 10.9 (Mavericks) 之前一切正常。现在我可以使用 $.post jquery 调用加载一次网格,但是第二次尝试加载网格时我收到 412(前提条件失败)。我必须先清空缓存,然后它才能让我再次加载网格。最奇怪的是,这只发生在 Safari 7.0 中。 Firefox 24.0 正常工作,可以毫无错误地加载网格。

这是我的网络服务器配置的问题,可能由于上传而发生了变化,还是...这可能只是本地化为新 Safari 的问题,还是...我的网络服务器中可能缺少什么Safari 现在正在严格检查的代码?

【问题讨论】:

  • 这似乎也是 iOS 上 Safari 中的一个问题。就好像苹果认为这是正确的行为一样。有谁知道它是否或可能被认为是合适的?

标签: macos safari kendo-ui osx-mavericks http-status-code-412


【解决方案1】:

在进行了一些研究后,我发现了一些与跨域加载相关的信息,这些信息建议进行此修复,但由于我没有进行跨域调用,我不确定为什么这确实有效。如果有人能解释,那就太好了。

这是通过将 $.post 调用更改为使用带有 GET 类型并将异步设置为 false 的 $.ajax 来解决的。

这是原始代码:

$.post( "myContent.html" )
    .done(function( data ) {
    $("#main_content").html(data);
});

这是更新后的代码:

$.ajax({
    type: "GET",
    url: "myContent.html",
    success: function(data) {
        $("#main_content").html(data);
    },
    async: false
});

【讨论】:

  • 不幸的是,这并不总是一种选择。我的代码使用 post,因为我请求的内容需要是新鲜的并且需要击败中间缓存。没有别的办法吗?
  • @Haqa 你不能在发出 AJAX 请求时将 cache 指定为 false 吗?
  • 如果浏览器倾向于听取这可能是一种选择,不幸的是,我的经验表明,在最好的情况下支持不完整的缓存控件。
猜你喜欢
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2017-12-29
  • 2013-11-07
  • 1970-01-01
  • 2019-04-17
相关资源
最近更新 更多