Jquery ajax发布并返回html以在div中显示

Jquery ajax发布并返回html以在div中显示,jquery,html,ajax,portal,Jquery,Html,Ajax,Portal,jqueryv1.9.0 当页面加载时,我将启动两个函数(get_month()&get_todays_events()),它们返回日历和今天的事件html 有时,当我刷新页面时,它会显示两次今天的事件,而不显示日历(月份),如下所示 有一半的时间工作正常,如下所示: firebug控制台中没有错误。作为一个独立的应用程序,它工作得很好,但当我把它整合到Jasig的uPortal中时,它就搞砸了 然后我尝试剥离从ajax帖子返回的html,我注意到get_todays_events();可能

jqueryv1.9.0

当页面加载时,我将启动两个函数(get_month()&get_todays_events()),它们返回日历和今天的事件html

有时,当我刷新页面时,它会显示两次今天的事件,而不显示日历(月份),如下所示

有一半的时间工作正常,如下所示:

firebug控制台中没有错误。作为一个独立的应用程序,它工作得很好,但当我把它整合到Jasig的uPortal中时,它就搞砸了

然后我尝试剥离从ajax帖子返回的html,我注意到get_todays_events();可能是罪魁祸首,但我仍然不知道可能是什么

html中是否有什么东西可能会出错,或者我是否应该在get_month()之后延迟启动该函数;火灾

下面是get_todays_events()函数成功返回的html

今天的活动
-下午12:30

-下午12:30

-下午六时


更新:检查firebug中的net选项卡并检查XHR,在uPortal中使用时,它将发出两个post请求和两个get请求。两个POST请求都重新调整了0字节,但GET请求返回了一些内容。我将它们更改为get,因为我并没有真正要求用户输入数据,而是单击一个已经有数据的链接(这是他们想要查看事件的日期),因此我将日期值附加到传递到ajax get请求的URL中,然后它每次都正确地返回它。

尝试添加到ajax调用参数async=false(将此参数添加到所有ajax调用中)

例如:

 jQuery.ajax({
  type: "POST",
  dataType: "html",
  url: url_todays_events,
  crossDomain: true,
  data: form_data,
  async:false,
  success: function( default_month_msg ) {

    jQuery('#display_todays_events').html(default_month_msg);

  } // end success

});

您还没有给我们提供JS函数中的任何代码。或者服务器端发生了什么,返回了什么。为了帮助我们,我们需要这些细节。使用Fiddler或firebug查看AJAX调用实际返回的内容。added-忘记原始添加是否可以在调用之前获取完整的呈现页面,我想说的是,表单中的某个位置放置了错误的url。这不是表单。我正在使用ajax向一个名为post_calendar()和post_todays_events()的控制器方法进行post,该方法返回适当的html。在uPortal中使用时,它的工作时间只有一半,如果您直接在页面上,它每次都会工作。是的,但是您使用的是
jQuery(“#events_for_day_url”)。attr(“href”)
选择器来获取AJAX的url,我只能假设您在控制器端的某个地方有一个错误,返回了错误的url。就像我说的,使用Fiddler或Firebug捕捉实际返回给客户的内容
<h3>Today's Events</h3>


  <p><a href="#" class="view_event_details" data-event_id="68">All About Heroin</a> - 12:30 pm</p>


  <p><a href="#" class="view_event_details" data-event_id="67">African Storyteller - Ekow King</a> - 12:30 pm</p>


  <p><a href="#" class="view_event_details" data-event_id="66">Men&rsquo;s Basketball vs. Columbia-Greene Community College</a> - 6:00 pm</p>
 jQuery.ajax({
  type: "POST",
  dataType: "html",
  url: url_todays_events,
  crossDomain: true,
  data: form_data,
  async:false,
  success: function( default_month_msg ) {

    jQuery('#display_todays_events').html(default_month_msg);

  } // end success

});