在AJAX javascript中从ASHX获取数据

Getting data from ASHX in AJAX javascript

本文关键字:获取 数据 ASHX 中从 AJAX javascript      更新时间:2023-12-01

创建:一个处理程序,用于检查数据库中是否存在新消息。

到目前为止我所做的工作:使用AJAX的Javascript每三秒钟运行一个处理程序。

我不能做的事情:将ASHX处理程序的结果返回到AJAX javascript,以便在结果为true时执行回发。

这是Javascript:

    //handle message upload
        window.setInterval(function () {
            $.ajax({
                url: "handlecb.ashx",
                type: "POST",
                success: function (result) {
                    toastr.options = {
                        "closeButton": false,
                        "debug": false,
                        "newestOnTop": true,
                        "progressBar": false,
                        "positionClass": "toast-bottom-left",
                        "preventDuplicates": true,
                        "onclick": null,
                        "showDuration": "1300",
                        "hideDuration": "1300",
                        "timeOut": "5300",
                        "extendedTimeOut": "1000",
                        "showEasing": "swing",
                        "hideEasing": "linear",
                        "showMethod": "fadeIn",
                        "hideMethod": "fadeOut"
                    }
                    toastr.info('Online.');
                   if (result < 0) {
                        __doPostBack("<%= senbut.ClientID %>", "");
                        toastr.options = {
                            "closeButton": false,
                            "debug": false,
                            "newestOnTop": true,
                            "progressBar": false,
                            "positionClass": "toast-bottom-left",
                            "preventDuplicates": true,
                            "onclick": null,
                            "showDuration": "1300",
                            "hideDuration": "1300",
                            "timeOut": "5300",
                            "extendedTimeOut": "1000",
                            "showEasing": "swing",
                            "hideEasing": "linear",
                            "showMethod": "fadeIn",
                            "hideMethod": "fadeOut"
                        }
                        toastr.success('New message recieved.');
                    }

                },
                error: function (err) {
                    toastr.options = {
                        "closeButton": false,
                        "debug": false,
                        "newestOnTop": true,
                        "progressBar": false,
                        "positionClass": "toast-bottom-left",
                        "preventDuplicates": true,
                        "onclick": null,
                        "showDuration": "1300",
                        "hideDuration": "1300",
                        "timeOut": "5300",
                        "extendedTimeOut": "1000",
                        "showEasing": "swing",
                        "hideEasing": "linear",
                        "showMethod": "fadeIn",
                        "hideMethod": "fadeOut"
                    }
                    toastr.danger('Offline');
                }
            });
        }, 3000);

这是处理程序:

    <%@ WebHandler Language="VB" Class="handlecb" %>
    Imports System.Data
    Imports System.IO
    Imports System.Data.OleDb
    Imports System.Web.SessionState
    Imports System.Web.Security
    Imports System.Web
        Public Class handlecb
            Implements IHttpHandler, System.Web.Session
State.IRequiresSessionState
    Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:'Users'Ishaan Patel'Desktop'Paperhome'paperhome_data.accdb")

Dim cmd As OleDbCommand
Dim cmd2 As OleDbCommand
Dim da As OleDbDataAdapter
Dim ds As New DataSet
Dim dr As OleDbDataReader
Dim result As Integer
Public Sub ProcessRequest(ByVal context As HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
    Dim threadid As String
    If Not context.Session("chatsess") Is Nothing Then
        threadid = context.Session("chatsess")
        GoTo b
    Else
        GoTo a
    End If
    b:
    Dim thread As Integer
    thread = Convert.ToInt32(threadid)

    con.Open() 'checklastupdatedon
    cmd = New OleDbCommand("SELECT [last_updated_on] FROM [message_threads] WHERE ([message_threads].[thread_id] = " & thread & ")", con)
    cmd.Connection = con
    dr = cmd.ExecuteReader
    If (dr.Read) Then
        Dim fetched As Date = Convert.ToDateTime(dr("last_updated_on"))
        Dim old As Date = Convert.ToDateTime(context.Session("last_updated_on"))
        result = DateTime.Compare(old, fetched)
        con.Close()
        If result < 0 Then 'old fetched is earlier than timer fetched
            context.Session("last_updated_on") = fetched
        End If
    End If
    a:
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get


   Return result
    End Get
End Property
 End Class

如有任何帮助/建议,我们将不胜感激。非常感谢。

调用处理程序时缺少函数名。请更改代码如下:

url: "handlecb.ashx/ProcessRequest",
type: "POST",