Then I found below code snippet which I think I can use to test whether my page is using AsyncPostBack or syncPostBack.
ScriptManager.RegisterStartupScript(this, this.GetType(), “Rating_Script_” + this.ClientID.ToString() , script.ToString(), false);
this.Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, script.ToString());
To my surprise, running this code snippet shows my page is using sync post back. So I suspect that my problem may have nothing to do with AJAX.
By looking the code, I found so called "AJAX enabled" web app actually just put [asp:ScriptManager ID="ScriptManager1" runat="server" /] in the master page and that's it. It does not mean you have used any AJAX functionality yet. So my pages are actually just "AJAX enabled" but having no any AJAX functionality (e.g. UpdatePanel).