I have a jQuery ajax call as listed below. I am formatting as suggested in Better JSON data structure
However I am getting an Internal Server Error
. I think this is because the JSON data passed as argument to the server method is not proper. Any idea how we can fix this?
jQuery Ajax
$( "#btnReceive" ).click(function()
{
var containerID = $('#txtContainerId').val();
alert(containerID);
alert('New4');
var containerScanParameter = {};
containerScanParameter.ContainerID = "A";
containerScanParameter.AdvShipNotice = "B";
containerScanParameter.LocationID = "B";
containerScanParameter.UserID = "B";
containerScanParameter.PlantCD = "B";
$.ajax({
type: "POST",
url: "rcvScanTXAdd.aspx/GetResult",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: containerScanParameter,
success: displayResultForLog,
error: errorFunction
});
});
Server Method
<WebMethod()> _
Public Shared Function GetResult(ByVal containerScanParameter As ContainerScanParameter) As ReceiveScanMessage
Dim receiveScanMessage As ReceiveScanMessage
receiveScanMessage = New ReceiveScanMessage()
Return receiveScanMessage
End Function
Parameter
Public Class ContainerScanParameter
Private _ContainerID As String
Property ContainerID() As String
Get
Return _ContainerID
End Get
Set(ByVal Value As String)
_ContainerID = Value
End Set
End Property
Private _AdvShipNotice As String
Property AdvShipNotice() As String
Get
Return _AdvShipNotice
End Get
Set(ByVal Value As String)
_AdvShipNotice = Value
End Set
End Property
Private _LocationID As String
Property LocationID() As String
Get
Return _LocationID
End Get
Set(ByVal Value As String)
_LocationID = Value
End Set
End Property
Private _UserID As String
Property UserID() As String
Get
Return _UserID
End Get
Set(ByVal Value As String)
_UserID = Value
End Set
End Property
Private _PlantCD As String
Property PlantCD() As String
Get
Return _PlantCD
End Get
Set(ByVal Value As String)
_PlantCD = Value
End Set
End Property
End Class
Request Headers
UPDATE
Resolved using following approach
Referred
json2.js
<script type="text/javascript" src="../Javascript/json2.js"></script>
Used Stringify as listed below
data: JSON.stringify({ containerScanParameter: containerScanParameter }),
CODE
$( "#btnReceive" ).click(function()
{
var containerID = $('#txtContainerId').val();
alert(containerID);
var containerScanParameter = {};
containerScanParameter.ContainerID = "A";
containerScanParameter.AdvShipNotice = "B";
containerScanParameter.LocationID = "B";
containerScanParameter.UserID = "B";
containerScanParameter.PlantCD = "B";
$.ajax({
type: "POST",
url: "rcvScanTXAdd.aspx/GetResult",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ containerScanParameter: containerScanParameter }),
success: displayResultForLog,
error: errorFunction
});
});