【问题标题】:ajaxSubmit does not reload page after first request (in CakePHP)ajaxSubmit 在第一次请求后不重新加载页面(在 CakePHP 中)
【发布时间】:2011-02-23 16:17:01
【问题描述】:

我正在创建一个包含页面编辑部分的 CMS。我正在尝试创建一个预览功能。它在第一次尝试时工作正常,但如果您随后更改一些文本并再次预览,则预览是旧版本。它也出现得非常快。好像 ajaxSubmit 函数不需要重新加载页面。

我尝试通过每次更改 url 来解决这个问题(通过在末尾添加时间戳),但这没有任何区别。我正在使用 jquery、cakePHP 和 fck 编辑器。

这是我所拥有的:

<script type="text/javascript">
$('#page_modal').jqm();
$('#preview_btn').click(function(e){
  // Get current page content from fck iframe
  var oEditor = FCKeditorAPI.GetInstance('PageContent');
  var newcontent = oEditor.GetData();
  $('#PageContent').html(newcontent);

  // Submit form via Ajax
  var d=new Date();
  var t=d.getTime();
  var thisurl = '/admin/pages/preview/' + t.toString();

  $('#ajaxForm').ajaxSubmit({
   url: thisurl,
   error: function(XMLHttpRequest, textStatus, errorThrown){                      
    alert(textStatus);
   },
   success: function(responseText){
    $('#page_modal').jqmShow().find('#page_modal_content').html(responseText);
   }
  });
  e.preventDefault(); 
 });
</script>

正如我所说,它第一次运行良好,但在随后的调用中,内容不会更新。任何人都可以提出任何建议吗?

【问题讨论】:

  • 所有浏览器都会出现这种情况吗?如果是 IE 相关的,请检查这个 [link]stackoverflow.com/questions/2313607/…
  • 感谢您的回复 - 我已经在 Firefox 中尝试过,这就是问题所在。我将不得不重新设置它以检查其他浏览器。

标签: cakephp jquery


【解决方案1】:

尝试在没有缓存的情况下标记视图 (/admin/pages/preview)。在实际视图中放置:

<cake:nocache>

 // your view content here

</cake:nocache>

可能是因为 cake 正在缓存视图,所以它不会随着后续调用而更新。

http://book.cakephp.org/view/347/Marking-Non-Cached-Content-in-Views

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多