2012-11-16 3 views
1

내가 JQuery와 아약스에서 메시지 보내기를 실행하려고에 오류가 있지만 다음 점점 오류JSON 원시 JQuery와 및 asp.net

{"Message":"Invalid JSON primitive: .","StackTrace":" at 
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() at 
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth) at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"} 

내 jQuery 코드 :

function sendmessage(){ 
var project_id = $("#DropDownList1 option:selected").val(); 
var formstatus = $("#DropDownList4 option:selected").val(); 
var formcode = $('#FormCText').val(); 
var uniquecode = getunique(); 
var to = $('.showto').attr("id"); 
var cc = getcc(); 

if ($('#urgent').prop("checked"==true)) 
{ 
var d = new Date(); 
var duedate = d.getFullYear() + "/" + (d.getMonth()+1) + "/" + d.getDate(); 
var urg = 1; 
} 
else 
{ 
var duedate=$('#datepicker').val(); 
var urg = 0; 
} 

if($('#readreceipt').prop("checked"==true)) 
{ 
var receipt = 1; 
} 
else{ 
var receipt = 0; 
} 
var fsub = $('#fsub').val(); 
var nicE = new nicEditors.findEditor('message'); 
var message = nicE.getContent(); 
alert("'project_id':'"+ project_id+"','formstatus':'"+ formstatus+"','formcode':'"+formcode+"','uniquecode':'"+ uniquecode+"','tor':'"+to+"','cc':'"+cc+"','duedate':'"+duedate+"','urg':'"+urg+"','receipt':'"+receipt+"','sub':'"+fsub+"','message':,'"+message+"'"); 

$(document).timer = setTimeout(function() { 
alert("now sending values"); 
$.ajax({ 
    type: "POST", 
    url: "consoservice.asmx/sendmessage", 
    data: "{'project_id':'" + project_id+ "','formstatus':'" + formstatus+ "','formcode':'" + formcode + "','uniquecode':'ghfg','tor':'"+to+"','cc':'"+cc+"','duedate':'"+duedate+"','urg':'"+urg+"','receipt':'"+receipt+"','fsub':'"+fsub+"','message':,'"+message+"'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
    if (msg.d == "sent") 
    { 
alert('message sent successfully for approval'); 
    } 
    else{ 
    alert(msg.d); 
    } 
    // Do something interesting here. 
    } 
}); }, 100); 
} 

내 서비스 기능 코드

<System.Web.Services.WebMethod()> _ 
    <System.Web.Script.Services.ScriptMethod()> _ 
    Public Function sendmessage(ByVal project_id As String, ByVal formstatus As String, ByVal formcode As String, ByVal uniquecode As String, ByVal tor As String, ByVal cc As String, ByVal duedate As String, ByVal urg As String, ByVal receipt As String, ByVal fsub As String, ByVal message As String) As String 

     MsgBox("reached") 
     Dim ip As String = System.Web.HttpContext.Current.Request.UserHostAddress 
     Dim usern As String = CookieUtil.GetEncryptedCookieValue("user_id") 
     Dim returnvalue As String 
     Dim ari As New moduleclass 
     Dim i As Integer 
     Try 
      i = ari.InsertAp_module_message(usern, tor, formcode, cc, formstatus, duedate, receipt, urg, fsub, message, -1, uniquecode, 0, 0, DateTime.Now, ip, 0) 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 

     If i > 0 Then 
      returnvalue = "sent" 
     Else 
      returnvalue = "not sent" 
     End If 

     Return returnvalue 
    End Function 
+0

이었다 대답 – user1820110

+0

에 대한 감사 - :

Senddata={"project_id": project_id,"formstatus": formstatus,........}; 

와 아약스 호출

- :

난 당신이 이런 식으로해야 전송되는 데이터의 생각 나는 당신이 오류를 가지고 기뻐요 .. – Pranav

답변

2

전송하는 데이터가 올바른 형식이 아니므로 시스템에서 발생하는 예외가 발생하므로 double 전송하기 전에 데이터를 확인하십시오. ... 그것은 롤 ','쉼표

$.ajax({ 
    type: "POST", 
    url: "consoservice.asmx/sendmessage", 
    data: JSON.stringify(Senddata), 
............ 
.............. 
});