【问题标题】:Send XML string to jquery ajax from VB.NET WEB METHOD从 VB.NET WEB METHOD 将 XML 字符串发送到 jquery ajax
【发布时间】:2013-12-26 11:40:27
【问题描述】:

这是我的 jquery ajax 调用:

 var result = $.ajax({
                type: "POST",
                url: "messages.aspx/GetMessages",
                data: jsonText,
                contentType: "application/json; charset=utf-8",
                dataType: "text",
                success: function (data) {
                    alert(data);

                },
                failure: function (msg) {
                    alert(msg);
                },
                error: function (xhr, err) {
                    alert(err);
                    alert(xhr);
                }
            });

这是我的网络方法:

<WebMethod()>
Public Shared Function GetMessages(clientID As String, CommandText As String) As String

    Dim dsMain As New DataSet()
    Try
    Dim objConnectionStringSettings As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("nXstepRevampDevConnectionString")
    strConnectionString = objConnectionStringSettings.ConnectionString
    Dim cnn As New SqlConnection()
    cnn.ConnectionString = strConnectionString
    cmd.Connection = cnn
    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "GetAll_Employee_Messages"
    cmd.Parameters.Clear()
    AddParameter("@EmployeeID", Convert.ToInt32(clientID))

    dsMain = ExecuteDataSet()

    If dsMain.Tables(0).Rows.Count > 0 Then
        Dim flag As Boolean = True
    End If

Catch ex As Exception


End Try

Return dsMain.GetXml


End Function

但是当我将 xml 字符串返回给我的 jquery ajax 调用时,我得到了一些不想要的输出。我想要下面的输出(警报),

"<NewDataSet>    <Table>      <EID>1</EID>      <IsRead>false</IsRead>      <ID>1</ID>      <ClientID>1</ClientID>      <Title>Dot Net Training Session</Title>      <Message>Dot Net Training Session Included&lt;br&gt;ASP.net&lt;br&gt;C#&lt;br&gt;Vb.net&lt;br&gt;SQL Server&lt;br&gt;&lt;br&gt;&lt;br&gt;</Message>      <Priority>1</Priority>      <MessagePostDate>2013-11-01T14:56:11.733+05:00</MessagePostDate>      <MessageStartDate>2013-11-21T00:00:00+05:00</MessageStartDate>      <MessageExpiryDate>2013-11-30T00:00:00+05:00</MessageExpiryDate>      <Deleted>false</Deleted>      <IsVideoMessage>false</IsVideoMessage>      <IsVideoMessageType>0</IsVideoMessageType>      <MessVideoPath />      <MessVideoName />      <UpdatedBy>3</UpdatedBy>      <UpdatedOn>2013-11-21T11:26:43.897+05:00</UpdatedOn>    </Table>    <Table>      <EID>1</EID>      <IsRead>false</IsRead>      <ID>2</ID>      <ClientID>1</ClientID>      <Title>Crunch Fitness Officially Crowned the Single Greatest Gym Franchise of All Time</Title>      <Message>saefasdf asdf asdf asdf</Message>      <Priority>2</Priority>      <MessagePostDate>2013-11-12T21:52:01.013+05:00</MessagePostDate>      <MessageStartDate>2013-11-21T00:00:00+05:00</MessageStartDate>      <MessageExpiryDate>2013-11-22T00:00:00+05:00</MessageExpiryDate>      <Deleted>false</Deleted>      <IsVideoMessage>false</IsVideoMessage>      <IsVideoMessageType>0</IsVideoMessageType>      <MessVideoPath>Messages/Mess2/</MessVideoPath>      <MessVideoName>Wildlife.flv</MessVideoName>      <UpdatedBy>3</UpdatedBy>      <UpdatedOn>2013-11-21T11:27:01.23+05:00</UpdatedOn>    </Table>    <Table>      <EID>1</EID>      <IsRead>false</IsRead>      <ID>3</ID>      <ClientID>1</ClientID>      <Title>test</Title>      <Message>sdahjkhdfkjsanhdf</Message>      <Priority>3</Priority>      <IsVideoMessage>false</IsVideoMessage>      <IsVideoMessageType>0</IsVideoMessageType>    </Table>  </NewDataSet>" String

但我在警报中得到以下输出:

"{"NewDataSet\u003e\r\n  \u003cTable\u003e\r\n    \u003cEID\u003e1\u003c/EID\u003e\r\n    \u003cIsRead\u003efalse\u003c/IsRead\u003e\r\n    \u003cID\u003e1\u003c/ID\u003e\r\n    \u003cClientID\u003e1\u003c/ClientID\u003e\r\n    \u003cTitle\u003eDot Net Training Session\u003c/Title\u003e\r\n    \u003cMessage\u003eDot Net Training Session Included&lt;br&gt;ASP.net&lt;br&gt;C#&lt;br&gt;Vb.net&lt;br&gt;SQL Server&lt;br&gt;&lt;br&gt;&lt;br&gt;\u003c/Message\u003e\r\n    \u003cPriority\u003e1\u003c/Priority\u003e\r\n    \u003cMessagePostDate\u003e2013-11-01T14:56:11.733+05:00\u003c/MessagePostDate\u003e\r\n    \u003cMessageStartDate\u003e2013-11-21T00:00:00+05:00\u003c/MessageStartDate\u003e\r\n    \u003cMessageExpiryDate\u003e2013-11-30T00:00:00+05:00\u003c/MessageExpiryDate\u003e\r\n    \u003cDeleted\u003efalse\u003c/Deleted\u003e\r\n    \u003cIsVideoMessage\u003efalse\u003c/IsVideoMessage\u003e\r\n    \u003cIsVideoMessageType\u003e0\u003c/IsVideoMessageType\u003e\r\n    \u003cMessVideoPath /\u003e\r\n    \u003cMessVideoName /\u003e\r\n    \u003cUpdatedBy\u003e3\u003c/UpdatedBy\u003e\r\n    \u003cUpdatedOn\u003e2013-11-21T11:26:43.897+05:00\u003c/UpdatedOn\u003e\r\n  \u003c/Table\u003e\r\n  \u003cTable\u003e\r\n    \u003cEID\u003e1\u003c/EID\u003e\r\n    \u003cIsRead\u003efalse\u003c/IsRead\u003e\r\n    \u003cID\u003e2\u003c/ID\u003e\r\n    \u003cClientID\u003e1\u003c/ClientID\u003e\r\n    \u003cTitle\u003eCrunch Fitness Officially Crowned the Single Greatest Gym Franchise of All Time\u003c/Title\u003e\r\n    \u003cMessage\u003esaefasdf asdf asdf asdf\u003c/Message\u003e\r\n    \u003cPriority\u003e2\u003c/Priority\u003e\r\n    \u003cMessagePostDate\u003e2013-11-12T21:52:01.013+05:00\u003c/MessagePostDate\u003e\r\n    \u003cMessageStartDate\u003e2013-11-21T00:00:00+05:00\u003c/MessageStartDate\u003e\r\n    \u003cMessageExpiryDate\u003e2013-11-22T00:00:00+05:00\u003c/MessageExpiryDate\u003e\r\n    \u003cDeleted\u003efalse\u003c/Deleted\u003e\r\n    \u003cIsVideoMessage\u003efalse\u003c/IsVideoMessage\u003e\r\n    \u003cIsVideoMessageType\u003e0\u003c/IsVideoMessageType\u003e\r\n    \u003cMessVideoPath\u003eMessages/Mess2/\u003c/MessVideoPath\u003e\r\n    \u003cMessVideoName\u003eWildlife.flv\u003c/MessVideoName\u003e\r\n    \u003cUpdatedBy\u003e3\u003c/UpdatedBy\u003e\r\n    \u003cUpdatedOn\u003e2013-11-21T11:27:01.23+05:00\u003c/UpdatedOn\u003e\r\n  \u003c/Table\u003e\r\n  \u003cTable\u003e\r\n    \u003cEID\u003e1\u003c/EID\u003e\r\n    \u003cIsRead\u003efalse\u003c/IsRead\u003e\r\n    \u003cID\u003e3\u003c/ID\u003e\r\n    \u003cClientID\u003e1\u003c/ClientID\u003e\r\n    \u003cTitle\u003etest\u003c/Title\u003e\r\n    \u003cMessage\u003esdahjkhdfkjsanhdf\u003c/Message\u003e\r\n    \u003cPriority\u003e3\u003c/Priority\u003e\r\n    \u003cIsVideoMessage\u003efalse\u003c/IsVideoMessage\u003e\r\n    \u003cIsVideoMessageType\u003e0\u003c/IsVideoMessageType\u003e\r\n  \u003c/Table\u003e\r\n\u003c/NewDataSet\u003e"}"

我正在获取数据,但标签正在更改为一些奇怪的单词并导致问题...我无法弄清楚问题,请帮助解决这个问题。此外,我在从函数返回之前检查了该值很好。但是我不知道当我在 jquery ajax 成功功能中提醒它时会发生什么。请帮忙

【问题讨论】:

    标签: xml jquery xml-parsing dataset webmethod


    【解决方案1】:

    您应该将dataType: "text" 更改为dataType: "xml",因为dataType 代表您期望从服务器获得的数据类型。

    【讨论】:

    • 乘坐dataType 并在成功函数中将alert(data); 替换为alert(data.d);
    • 我尝试了 data type = 'json' 和 alert(data.d)...它工作...无论如何感谢@Mohammad Shahrouri
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多