사실 jpeg 웹 서비스에 대한 jQuery Ajax 호출을 배우려고합니다.이 코드에 대한 도움말 : JSON을 반환해야하는 webservice에 jQuery Ajax 호출을 작성하십시오.
나는 아래의 WebMethod 전화를 시도하고있다 :
public class Person
{
public string FirstName { get; set; }
public string Id { get; set; }
public string LastName { get; set; }
public string Department { get; set;}
public DateTime Birthday { get; set; }
}
public class PersonWebServices : System.Web.Services.WebService {
[WebMethod]
[ScriptMethod]
public Person GetPerson(Person personToCompare)
{
return GetPerson(personToCompare.Id);
}
[WebMethod]
public Person GetPerson(string Id)
{
if (string.IsNullOrEmpty(Id))
return null;
Id = Id.Trim();
return PersonCollection.GetCachedPersonList().Find(personToCompare => personToCompare.Id == Id);
}
}
을 그리고 내 자바 스크립트는 이것이다 :
{ "메시지 : 말하는 JSON 관련 응답 결과
<script type="text/javascript">
function loadPerson(txtPersonId){
if(!txtPersonId.length || !(txtPersonId.val().length)){
return;
}
var ajaxCallOptions = {
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/JQuery/Chapter15-AJAX/PersonWebServices.asmx/GetPerson",
data: {FirstName:'',LastName:'', Id:txtPersonId.valueOf(),Birthday:'',Department:''},
dataType: "json",
success: function(msg){
alert('done');
},
error: function(msg){
alert('Error: '+msg.status);
}
}
jQuery.ajax(ajaxCallOptions);
};
</script>
":"유효하지 않은 JSON 프리미티브 : 이름 ","StackTrace ":"System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() \ r \ n System.Web.Script.Serialization.Java System.Web.Script.Serialization.JavaScriptSerializer.Deserialize에서 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (String input, Int32 depthLimit, JavaScriptSerializer serializer) \ Script \ System.Web.Script.Serialization.JavaScriptSerializer.Deserialize의 ScriptObjectDeserializer.DeserializeInternal (Int32 깊이) System.Web.Script.Services.RestHandler에서 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize [T] (문자열 입력) \ r \ n에 \ r \ n을 입력하십시오. GetRawParamsFromPostRequest (HttpContext 컨텍스트, JavaScriptSerializer serializer) \ r \ n System.Web.Script.Services.RestHandler.GetRawParams (WebServiceMethodData methodData, HttpContext 컨텍스트) \ r \ n System.Web.Script.Services.RestHandler.ExecuteWebServiceCall (HttpContext 컨텍스트 , WebServiceMethodData methodData) ","ExceptionType ":"System.ArgumentException "}
'데이터'속성을 설정하기 전에 어떤 방식 으로든 객체를 사용하므로 $ .ajax() 함수를 호출 할 수 있습니까? 오류를 바탕으로
감사
DateTime 속성을 제거하여 시도한 결과입니다.나는 그것이 작동하도록하는 방법에 대해 연구 할 것이다. 고마워요. 또한 stringify 제안에 대해 @patrick에게 감사드립니다. – pencilCake
신난다, 내가 도울 수 있기 때문에 기쁘다. – ckramer