Как сохранить HTML в запросе jQuery AJAX?

Я работаю над проектом, в котором хочу реализовать AJAX, и выбрал jQuery в качестве библиотеки JavaScript. Вот HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head runat = "server">
    <title>jQuery AJAX</title>
    <!--<script language = "javascript" type = "text/javascript" src = "inc/scripts.js"></script>-->
    <script language = "javascript" type = "text/javascript" src = "inc/jquery-1.2.6-intellisense.js"></script>
    <script language = "javascript" type = "text/javascript">
        $(document).ready(function(){
            $("#clicker").click(function () {
                $.ajax({
                    type: "POST",
                    url: "test.aspx/randomString",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        $("#result").append(msg.d);
                    }
                });
            });
        });
    </script>
</head>
<body runat = "server">
    <form id = "form1" runat = "server">
        <div id = "result" runat = "server" style = "margin-bottom:5em;"></div>
        <div id = "clicker" runat = "server" style = "cursor:pointer;">Click Here to Refresh</div>
    </form>
</body>
</html>

А вот и бэкенд на test.aspx:

<WebMethod()> _
Public Shared Function randomString() As String
    Dim KeyGen As RandomKeyGenerator
    Dim NumKeys As Integer
    Dim i_Keys As Integer
    Dim RandomKey As String
    Dim oRet As New StringBuilder
    NumKeys = 20
    KeyGen = New RandomKeyGenerator
    KeyGen.KeyLetters = "abcdefghijklmnopqrstuvwxyz"
    KeyGen.KeyNumbers = "0123456789"
    KeyGen.KeyChars = 12
    For i_Keys = 1 To NumKeys
        RandomKey = KeyGen.Generate()
        oRet.AppendLine(String.Format("{0}{1}", RandomKey, ControlChars.NewLine))
    Next
    Return oRet.ToString
End Function

Я пробовал $("#result).text(msg.d), а также формировал список String.Format("<li>{0}</li>",RandomKey) и добавлял тег прерывания String.Format("{0}<br />",RandomKey).

Когда я запускаю страницу, она возвращается в виде одной строки, отображается весь HTML. Что мне нужно сделать, чтобы он отобразил HTML?

Я получил информацию о том, как вызвать страницу без ScriptManager из этот сайт.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 888
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Почему вы используете json в качестве dataType, когда возвращаете html? Используйте "html" как dataType и замените msg.d на msg.

Когда я изменил его на HTML / msg, я получил следующее: {"d": "r537pkRW553b \ r \ n \ r \ nOzgN1mf3u5 .... <- многое другое, откуда это взялось, но определенно не то, что я ищу .

Anders 19.11.2008 17:24

Откуда этот объект json? Это не очевидно из предоставленного вами исходного кода. Вы используете веб-службу с привязками json?

kgiannakakis 19.11.2008 17:31

Причина, по которой он использует этот конкретный синтаксис вызова, заключается в том, чтобы заставить веб-службу ASMX возвращать JSON, даже если это не ASP.NET AJAX, выполняющий запрос. Это необходимо.

Dave Ward 19.11.2008 17:37

Если вам нужно поместить html в узел, например, если у вас есть div с id = container. Вы делаете это так $ ('# container'). Html (htmlContent) ;. Но будьте осторожны, ответ, который вы получаете от сервера, не должен быть преобразован html в безопасные строки (с символьными объектами). Но вы также используете json в качестве типа данных. Вы должны использовать для этого текст. Или возьмите строку из переменной json, которую вы получаете с сервера, и поместите ее в узел.

Я просто скопировал / вставил код с веб-сайта, на который ссылался в своем сообщении. изменение параметров в запросе дает мне тот же результат, что и предложение кг

Anders 19.11.2008 17:26
Ответ принят как подходящий

Использовать:

$("#result").html(msg.d)

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