2010-11-29 5 views
0

Ich habe ein Problem, das wirklich Bizzare ist und nach der Suche im Internet den ganzen Tag habe ich nichts gefunden, was hat geholfen.Auf AJAX-Anfrage erhalten wir diesen Fehler: Sys.WebForms.PageRequestManagerParserErrorException: Die Nachricht vom Server empfangen konnte nicht analysiert werden

Wir gingen letzte Woche mit unserer Website www.promatenvision.co.uk live und wenn Sie zur Website navigieren und auf Kontakt oben rechts klicken, wird Ihnen ein Anfrageformular angezeigt, dessen Code unten steht (Ich habe es versucht mit normalen Update-Panels statt dem telerik Code und es die gleiche Sache) Nun hat

<%@ 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> 

dann, wenn Sie auf senden klicken, geschieht nichts und wenn dies sehen Sie können im Internet Explorer zu tun, dass ein Javascript-Fehler ist eigentlich geworfen:

Nachricht: Sys.WebForms.PageRequestManagerParserErrorException: Die Nachricht vom Server empfangen konnte nicht geparst werden. Line: 868 Char: 13 Code: 0

Die Linie 868 ist die folgende Ajax-Funktion:

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; 
     } 
    } 

Nun, wenn du gehst zu www.promatenvision.co.uk/promat.aspx (Dies ist das Standarddokument in IIS 7, in dem es gehostet wird) und versuchen Sie es, dann funktioniert es. Von nun an, egal auf welcher Seite Sie sind, funktioniert der Code, da er auf promat.aspx bleibt und die Abfragezeichenfolge ändert, um auf der Site zu navigieren. Gehen Sie zurück zum .co.uk am Ende der URL und es bricht erneut.

Kann mir bitte jemand helfen, da ich keine Ahnung habe, wohin ich als nächstes gehen soll?

Vielen Dank im Voraus,

Mark

Antwort

0

ich überprüft den Code und denken, dass Sie es so ändern müssen:

<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> 

und Verwendung RadCodeBlock statt RadScriptBlock.

0

Wir haben dieses Problem gelöst, indem wir den Pipeline-Modus des App-Pools auf unserem iis-Server auf integriert statt klassisch eingestellt haben.

Verwandte Themen