2010-11-29 73 views
0

我有一個問題,真的bizzare和整個互聯網搜索後,我一整天都沒有發現什麼幫助。在ajax請求我們得到這個錯誤:Sys.WebForms.PageRequestManagerParserErrorException:從服務器收到的消息無法解析

上週我們去了我們的網站www.promatenvision.co.uk,當瀏覽網站並點擊右上角的聯繫人時,您會看到一個查詢表單,其代碼位於下方(我試過了與正常的更新面板,而不是Telerik的代碼,它做同樣的事情)

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="enquiry.ascx.cs" Inherits="Promat.enquiry" %> 
<telerik:RadAjaxPanel ID="rap" runat="server" Width="100%" OnAjaxRequest="rap_AjaxRequest" 
    LoadingPanelID="ralp"> 
    <div id="enquiryWrapper"> 
     <div id="detailsDiv"> 
      <h2> 
       Your Details</h2> 
      <p> 
       <telerik:RadTextBox ID="txtName" runat="server" Width="180" EmptyMessage="Name" /> 
      </p> 
      <p> 
       <telerik:RadTextBox ID="txtTel" runat="server" Width="180" EmptyMessage="Telephone" /> 
      </p> 
      <p> 
       <telerik:RadTextBox ID="txtEmail" runat="server" Width="180" EmptyMessage="Email" /> 
       <asp:HiddenField ID="hidSubject" runat="server" ClientIDMode="Static" /> 
      </p> 
     </div> 
     <div id="requestDiv"> 
      <h2> 
       Nature of your enquiry</h2> 
      <textarea id="EnqTxtBx" class="enqText" cols="35" rows="8"></textarea> 
     </div> 
     <div id="submitDiv"> 
      <h2> 
       Submit your request</h2> 

      <input id="sendBtn" type="button" class="clickable" onclick="SendEnquiry()" value="SEND" /> 
      <input id="cancelBtn" type="button" class="clickable" onclick="SlideOut(0,'top','OUT')" value="CANCEL" /> 

      <div id="EnqMessageDiv" runat="server" style="display: none;"> 
       <img src="./themes/cross.png" alt="Invalid: " runat="server" id="MessageImg" style="width: 16px; height: 16px;" /> 
       <asp:Label ID="MessageLbl" runat="server"></asp:Label> 
      </div> 
     </div> 
    </div> 
</telerik:RadAjaxPanel> 
<telerik:RadScriptBlock ID="rsb" runat="server"> 
    <script type="text/javascript"> 
     function SendEnquiry() 
     { 
      var oAjax = <%= rap.ClientID %>; 
      var txtBx = document.getElementById("EnqTxtBx"); 
      var EnqTxt = txtBx.value; 
      oAjax.ajaxRequest("Enq|"+EnqTxt+"|"); 
     } 
    </script> 
</telerik:RadScriptBlock> 
<telerik:RadAjaxLoadingPanel ID="ralp" Runat="server" Skin="Default" Transparency="50"> 
</telerik:RadAjaxLoadingPanel> 

那麼現在,如果你點擊發送,無任何響應,並在IE中執行此操作時,你可以看到一個JavaScript錯誤實際上是拋出:

消息:Sys.WebForms.PageRequestManagerParserErrorException:從服務器收到的消息不能被解析。 線:868 字符:13 代碼:0

行868是以下AJAX功能:

function Sys$WebForms$PageRequestManager$_endPostBack(error, executor, data) { 
     if (this._request === executor.get_webRequest()) { 
      this._processingRequest = false; 
      this._additionalInput = null; 
      this._request = null; 
     } 
     var handler = this._get_eventHandlerList().getHandler("endRequest"); 
     var errorHandled = false; 
     if (handler) { 
      var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor); 
      handler(this, eventArgs); 
      errorHandled = eventArgs.get_errorHandled(); 
     } 
     if (error && !errorHandled) { 
      throw error; 
     } 
    } 

那麼現在,如果你去www.promatenvision.co.uk/promat.aspx (這是它託管的IIS 7中的默認文檔),然後嘗試使用它。從現在開始,無論您在代碼中使用哪個頁面,都會保留promat.aspx更改查詢字符串以導航網站。回到網址末尾的.co.uk處,並再次打破。

有人可以幫助我,因爲我不知道下一步該去哪裏?

感謝這麼多提前,

馬克

回答

0

我檢查了您的代碼,並認爲你必須改變這樣的:

<telerik:RadCodeBlock ID="rcb" runat="server"> 
<script type="text/javascript"> 
    function SendEnquiry() 
    { 
     var oAjax = $find('<%= rap.ClientID %>'); 
     var txtBx = document.getElementById("EnqTxtBx"); 
     var EnqTxt = txtBx.value; 
     oAjax.ajaxRequest("Enq|"+EnqTxt+"|"); 
    } 
</script> 
</telerik:RadCodeBlock> 

使用RadCodeBlock,而不是RadScriptBlock

0

我們通過在我們的iis服務器上將應用程序池的管道模式設置爲集成而非經典來解決此問題。

相關問題