По запросу ajax мы получаем эту ошибку:Sys.WebForms.PageRequestManagerParserErrorException: сообщение, полученное с сервера, не может быть проанализировано

У меня проблема, которая очень странная, и после поиска в Интернете весь день я не нашел ничего, что помогло.

На прошлой неделе мы начали работу с нашим веб-сайтом www.promatenvision.co.uk, и при переходе на веб-сайт и нажатии на контакт в правом верхнем углу отображается форма запроса, код которой приведен ниже (я пробовал это с обычными панелями обновления). а не код телерика и он делает то же самое)

<%@ 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 в конце URL, и он снова обрывается.

Может кто-нибудь, пожалуйста, помогите мне, поскольку я понятия не имею, куда идти дальше?

Большое спасибо заранее,

отметка

2 ответа

Мы решили эту проблему, установив режим конвейера пула приложений на нашем сервере iis как встроенный, а не классический.

Я просмотрел ваш код и думаю, что вы должны изменить его следующим образом:

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

Другие вопросы по тегам