We have an aspx page which calls the code behind using $post.
The code works well until there are 2 (or more) users who do the post at the same time.
When that happens, the one user's data gets returned on the other's webpage.
The code is in VB.NET but I think the issue is in the way the aspx works with the code behind, so I've included C# in the tags. Happy to hear any C# suggestions as well :)
function getDetails() {
          
            if ($('.loader-container').is(':visible')) return;
            
            var newItem = "";
            var bool;
            var Barcode = $('#txtBarcode').val()
            $('.loader-container').show();
            var IBTOutNumber = Barcode;
           
            var formData = {                   
                IBTOutNumber: IBTOutNumber,
            };
            RequestUrl = "sendstock.aspx?Page=SendStock";
            RequestUrl += "&Action=GetStockDetails";                              
            $.post(RequestUrl, { FormData: JSON.stringify(formData) }, function (respone) {
              
                 $('.loader-container').hide();
                    if (respone.Success == true) {
                        var dataItems = JSON.parse(respone.dt)
                        $.each(dataItems, function (index, row) {
                          
                            newItem += "<tr class='dispatch Pointer'>" +
                                "<td id='IBTOutNumber' >" + row.transaction_number + "</td>" +
                                "<td id='BranchName'>" + row.branch_name + "</td>" +
                                "<td id='BranchCode'>" + row.branch_code + "</td>" +
                                
                                "</tr>";
                            $("#errMsg").addClass("hide")
                            $("#stock tbody").append(newItem);
                            bool = true;
                        });
                        count()
                        
                    }
            }, 'json');
        }
Here is the code behind.
    Dim Action = String.Empty
    Dim Page = String.Empty
    Dim Message = String.Empty
    If String.IsNullOrEmpty(Request.QueryString("Action")) = False Then
        Action = Request.QueryString("Action").ToString()
    End If
    If Request.QueryString("Page") IsNot Nothing And Request.QueryString("Page") <> "" Then
        Page = Request.QueryString("Page").ToString()
        Dim RequsestFormData = Request.Form("formData")
        Select Case Page
            Case "SendStock"
                Select Case Action
                    Case "GetStockDetails"
                        Dim getStock As New GetStock
                        Dim getDetails = JsonConvert.DeserializeObject(Of GetStockDetails)(RequsestFormData)
                        getStock = GetStockDetail(getDetails.IBTOutNumber)
                        Message = JsonConvert.SerializeObject(getStock)
                        Response.Clear()
                        Response.Write(Message)
                        Response.ContentType = "Text/Json"
                        _SendContent = True
        End Select
    If _SendContent = True Then
        Response.End()
    End If
Here is the code for the GetStockDetails function:
Public Function GetStockDetail(ByVal IBTOutNumber As String) As GetStock
    Dim getStock As New GetStock
    Try
        Dim dt As New DataTable
        dt.Columns.Add("transaction_number")
        dt.Columns.Add("branch_code")
        dt.Columns.Add("branch_name")
        dt.Columns.Add("address_line_1")
        dt.Columns.Add("address_line_2")
        dt.Columns.Add("address_line_3")
        dt.Columns.Add("address_line_4")
        dt.Columns.Add("address_line_5")
        dt.Columns.Add("counter", GetType(Integer))
        Dim _ReturnedData As DataTable
        Try
            _ReturnedData = _BLayer.ReturnBranchDetails("010", IBTOutNumber, True)
        Catch ex As Exception
            _blErrorLogging.ErrorLogging(ex)
            getStock.Message = "Something went wrong."
            getStock.Success = False
            Return getStock
        End Try
        If _ReturnedData.Rows(0)("error") <> "" Then
            getStock.ErrorMessages &= _ReturnedData.Rows(0)("error") & vbCrLf
            GoTo NoLine
        End If
        dt.Rows.Add(IBTOutNumber, _ReturnedData.Rows(0)("branch_code"), _ReturnedData.Rows(0)("branch_name"), _ReturnedData.Rows(0)("address1"), _ReturnedData.Rows(0)("address2"), _ReturnedData.Rows(0)("address3"), _ReturnedData.Rows(0)("address4"), _ReturnedData.Rows(0)("address5"))
NoLine:
        Dim json As String = JsonConvert.SerializeObject(dt, Formatting.Indented)
        getStock.dt = json
        getStock.Success = True
    Catch ex As Exception
        _blErrorLogging.ErrorLogging(ex)
        getStock.Message = "Something Went Wrong."
        getStock.Success = False
        Return getStock
    End Try
    Return getStock
End Function
And code for the ReturnBranchDetails function:
Public Function ReturnBranchDetails(ByVal CompanyCode As String, ByVal IBTOutNumber As String,
                                    ByVal isDispatch As Boolean) As DataTable
    Dim curdata As New DataTable
    curdata.TableName = "dispatch"
    curdata.Columns.Add("error")
    curdata.Columns.Add("branch_name")
    curdata.Columns.Add("branch_code")
    curdata.Columns.Add("address1")
    curdata.Columns.Add("address2")
    curdata.Columns.Add("address3")
    curdata.Columns.Add("address4")
    curdata.Columns.Add("address5")
    tmpSQL = "SELECT branch_details.branch_name,dispatched_timestamp,receiving_date " &
             "FROM ibt_transactions " &
             "WHERE ibt_transactions.transaction_number = '" & IBTOutNumber & "' " &
             "LIMIT 1"
    Try
        Ds = usingObjDB.GetDataSet(_ConnectionString, tmpSQL)
        If usingObjDB.isR(Ds) Then
            For Each dr As DataRow In Ds.Tables(0).Rows
                If isDispatch = True Then
                    If dr("dispatched_timestamp") & "" <> "" Then
                        curdata.Rows.Add("IBT Out " & dr("receiving_date") & " has already been dispatched.")
                        Return curdata
                        'Return "IBT Out " & dr("transaction_number") & " has already been dispatched."
                    End If
                  
                Else
                     If dr("receiving_date") & "" <> "" Then
                        curdata.Rows.Add("IBT Out " & dr("transaction_number") & " has not been dispatched.")
                        Return curdata
                        'Return "IBT Out " & dr("transaction_number") & " has already been dispatched."
                    End If
                End If
                curdata.Rows.Add("", dr("branch_name"), dr("receiving_branch_code"), dr("address_line_1"), dr("address_line_2"),
                                 dr("address_line_3"), dr("address_line_4"), dr("address_line_5"))
               
            Next
        Else
            curdata.Rows.Add("IBT Out Number: " & RG.Apos(IBTOutNumber) & " does not exist.")
            Return curdata
            'Return "IBT Out Number: " & RG.Apos(IBTOutNumber) & " does not exist."
        End If
    Catch ex As Exception
        curdata.Rows.Add(ex.Message)
    End Try
    Return curdata
End Function
 
    