3
여기에 짧고 달콤한 질문을 유지하십시오. JSON 객체를 ASMX 웹 서비스에 전달하려고하면 500 오류가 발생합니다. 내가 개별 변수 (예. int ID, int OrderHeaderID
등)로 PARAMS를 선언하는 경우 나 오류가 나타나지 않습니다. 왜 문제가 발생하는지 알 수는 없지만 이전에이 구문을 사용하여 객체를 성공적으로 전달했습니다. 구문은 다를 수 있지만 기억할 수는 없습니다.500 오류 - .ASMX 웹 서비스에 대한 JSON 객체 POST
JS :
var returnHeader = {
ID: -1,
OrderHeaderID: parseInt(getQueryStringKey('OrderID')),
StatusID: 1,
DeliveryCharge: 0,
CreatedBy: $('span[id$="lblHidUsername"]').text(),
ApprovedBy: $('span[id$="lblHidUsername"]').text()
};
$.ajax({
type: "POST",
url: 'Order.asmx/SaveReturnHeader',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(returnHeader),
success: function (result) {
if (result.Status == 'OK') {
GetReturns();
}
else {
$('#divMessage').show().html(result.Data.Message).addClass('error');
}
},
error: function (x, e) {
if (x.status == 500) {
$('#divMessage').show().html('An unexpected server error has occurred, please contact support').addClass('error');
}
}
});
서버 (편의상 약칭)
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public object SaveReturnHeader(BEReturnHeader returnHeader)
{
try
{
return new
{
Status = "OK",
Data = ""
};
}
catch (Exception ex)
{
return new
{
Status = "ERROR",
Data = ex
};
}
}
대상 :
public int ID ...
public int OrderHeaderID ...
public int StatusID ...
public decimal DeliveryCharge ...
public string CreatedBy ...
public string ApprovedBy ...
요청 데이터 :
{"ID":-1,"OrderHeaderID":5,"StatusID":1,"DeliveryCharge":0,"CreatedBy":"77777777","ApprovedBy":"77777777"}
,451,515,
응답 헤더 :
HTTP/1.1 500 Internal Server Error
Date: Mon, 05 Dec 2011 16:38:36 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
jsonerror: true
Cache-Control: private
Content-Type: application/json
Content-Length: 91
응답 데이터 :
{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}
FIX :
var params = {
returnHeader: {
...
}
};
...
data: JSON.stringify(params),
...
{"returnHeader":{"ID":-1,"OrderHeaderID":5,"StatusID":1,"DeliveryCharge":0,"CreatedBy":"77777777","ApprovedBy":"77777777"}}
:이 서버에서 인식 그래서
는 JSON 객체를 포장했다
문제가있었습니다. 절름발이, 나는 단 하나의 물체가 지나가고 있다는 것을 깨닫기에 충분히 똑똑하다고 생각했다. 스코트 감사합니다. .NET 2.0에서 작동하는 즐거움 ... – Terry
ScottE : 배열에 같은 문제가 생겼지 만 올바르게 이름을지었습니다. DATA :'{ "ReturnDetails": [{ "ReturnHeaderID": 5, "SKU": 537258, "ReasonCode": 1, "Quantity": 1, "Comment1": "", "Comment2": "", "Comment3 1, "Comment1": "", "Comment2": "", "Comment3": "": ""}, { "ReturnHeaderID": 5, "SKU": 467662, "ReasonCode" "}]}'Function :'public 객체 SaveReturnDetails (List ReturnDetails)' –
Terry
PS. 문제를 안다면 나는 새로운 질문을 할 수있어 완전한 대답을 얻을 수 있습니다. – Terry