2016-05-25 74 views
0

我正在嘗試使用jQuery進行ajax調用並使用Coldfusion 10設置會話變量。這是我收到的錯誤:
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON dataAjax調用SyntaxError:JSON.parse:JSON數據的第1行第1列的數據意外結束

enter image description here

我俯瞰的東西嗎?

$('#ToolTables_processing_1').on('click', function() { 
    $.ajax({ 
     // the location of the CFC to run 
     url: "redirects/selectedrows.cfm", 
     // send a GET HTTP operation 
     type: "post", 
     // tell jQuery we're getting JSON back 
     dataType: "json", 
     // send the data to the CFC 
     data: $('#form').serialize(), 
     // this gets the data returned on success 
     success: function (data) { 
      console.log(data); 
      window.location = 'forms/exitinterviewpdf.cfm'; 
     }, 
     // this runs if an error 
     error: function (xhr, textStatus, errorThrown) { 
      // show error 
      console.log(errorThrown); 
     } 
    }); 
}); 

如果我拿出datatype: json我只是得到一個空字符串。 enter image description here

selectedrows.cfm

<cfset session.exitinterview.selected.selectedRowName = form.selectedRowName > 
<cfset session.exitinterview.selected.selectedRowtodayDate = form.selectedRowtodayDate > 
<cfset session.exitinterview.selected.selectedRowtitle = form.selectedRowtitle > 
<cfset session.exitinterview.selected.selectedRowdepartment = form.selectedRowdepartment > 
<cfset session.exitinterview.selected.selectedRowhireDate = form.selectedRowhireDate > 
<cfset session.exitinterview.selected.selectedRowterminationDate = form.selectedRowterminationDate > 
<cfset session.exitinterview.selected.selectedRowreasonLeaving = form.selectedRowreasonLeaving > 
<cfset session.exitinterview.selected.selectedRowfeelPay = form.selectedRowfeelPay > 
<cfset session.exitinterview.selected.selectedRowprogressHere = form.selectedRowprogressHere > 
<cfset session.exitinterview.selected.selectedRowanotherJob = form.selectedRowanotherJob > 
<cfset session.exitinterview.selected.selectedRowcomparewith = form.selectedRowcomparewith > 
<cfset session.exitinterview.selected.selectedRowhigherSalary = form.selectedRowhigherSalary > 
<cfset session.exitinterview.selected.selectedRowpreventLeaving = form.selectedRowpreventLeaving > 
<cfset session.exitinterview.selected.selectedRowclearlyExplained = form.selectedRowclearlyExplained > 
<cfset session.exitinterview.selected.selectedRowbyWhom = form.selectedRowbyWhom > 
<cfset session.exitinterview.selected.selectedRowadequateTraining = form.selectedRowadequateTraining > 
<cfset session.exitinterview.selected.selectedRowworkPerform = form.selectedRowworkPerform > 
<cfset session.exitinterview.selected.selectedRowworkingCondition = form.selectedRowworkingCondition > 
<cfset session.exitinterview.selected.selectedRowsalary = form.selectedRowsalary > 
<cfset session.exitinterview.selected.selectedRowretirement = form.selectedRowretirement > 
<cfset session.exitinterview.selected.selectedRowhealthPlan = form.selectedRowhealthPlan > 
<cfset session.exitinterview.selected.selectedRowtuition = form.selectedRowtuition > 
<cfset session.exitinterview.selected.selectedRowunileave = form.selectedRowunileave > 
<cfset session.exitinterview.selected.selectedRowcoworkers = form.selectedRowcoworkers > 
<cfset session.exitinterview.selected.selectedRowsupervisionReceived = form.selectedRowsupervisionReceived > 
<cfset session.exitinterview.selected.selectedRowneededHelp = form.selectedRowneededHelp > 
<cfset session.exitinterview.selected.selectedRowmanagerRespond = form.selectedRowmanagerRespond > 
<cfset session.exitinterview.selected.selectedRowsuggestionsBetterPlace = form.selectedRowsuggestionsBetterPlace > 
<cfset session.exitinterview.selected.selectedRowrealReasonForLeaving = form.selectedRowrealReasonForLeaving > 
<cfset session.exitinterview.selected.selectedRowcomments = form.selectedRowcomments > 

<cfoutput>#SerializeJSON(session.exitinterview.selected)#</cfoutput> 

錯誤在那裏它打破 enter image description here

enter image description here

對於VLAD enter image description here

+0

如果您在重定向/ selectedrows.cfm中硬編碼某些JSON作爲響應會發生什麼情況?看起來重定向/ selectedrows.cfm不會返回任何內容。你可以在selectedrows.cfm中發佈代碼嗎? –

+1

爲什麼使用.cfm頁面而不是.cfc?雖然技術上你可以發佈到一個.cfm腳本,但它使得它很難控制輸出,並且更容易無意中打破ajax調用,然後使用.cfc。 – Leigh

+1

先嚐試1個表單字段。前嘗試張貼併發送selectedRowName = David首先。這樣,你可以縮小問題,如果它的表單值或問題可能是selectedrows.cfm頁 – Vlad

回答

1

我通常調試l當做大數據集縮小了問題範圍。請嘗試示例代碼

<!DOCTYPE html> 
<html> 
<head> 
<title>Title of the document</title> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
</head> 

<body> 

<form id="form" method="post" onsubmit="javascript:return(false)"> 

    <input type="text" name="SELECTEDROWNAME" id="SELECTEDROWNAME" value="Vlad" > 
    <input type="submit" id="ToolTables_processing_1" value="save" >  

</form> 


<script type="text/javascript"> 

$(function(){ 

    $('#ToolTables_processing_1').on('click', function() { 

     $.ajax({ 
      // the location of the CFC to run 
      url: "redirects/selectedrows.cfm", 
      // send a GET HTTP operation 
      type: "post", 
      // tell jQuery we're getting JSON back 
      dataType: "json", 
      // send the data to the CFC 
      data: $('#form').serialize(), 
      // this gets the data returned on success 
      success: function (data) { 
       console.log(data); 
       //window.location = 'forms/exitinterviewpdf.cfm'; 
      }, 
      // this runs if an error 
      error: function (xhr, textStatus, errorThrown) { 
       // show error 
       console.log(errorThrown); 
      } 
     }); 
    }); 
});//doc ready 

</script> 
</body> 

</html> 

selectedrows.cfm

<cfset session.exitinterview.selected.selectedRowName = form.selectedRowName > 
<!---<cfset session.exitinterview.selected.selectedRowtodayDate = form.selectedRowtodayDate > 
<cfset session.exitinterview.selected.selectedRowtitle = form.selectedRowtitle > 
<cfset session.exitinterview.selected.selectedRowdepartment = form.selectedRowdepartment > 
<cfset session.exitinterview.selected.selectedRowhireDate = form.selectedRowhireDate > 
<cfset session.exitinterview.selected.selectedRowterminationDate = form.selectedRowterminationDate > 
<cfset session.exitinterview.selected.selectedRowreasonLeaving = form.selectedRowreasonLeaving > 
<cfset session.exitinterview.selected.selectedRowfeelPay = form.selectedRowfeelPay > 
<cfset session.exitinterview.selected.selectedRowprogressHere = form.selectedRowprogressHere > 
<cfset session.exitinterview.selected.selectedRowanotherJob = form.selectedRowanotherJob > 
<cfset session.exitinterview.selected.selectedRowcomparewith = form.selectedRowcomparewith > 
<cfset session.exitinterview.selected.selectedRowhigherSalary = form.selectedRowhigherSalary > 
<cfset session.exitinterview.selected.selectedRowpreventLeaving = form.selectedRowpreventLeaving > 
<cfset session.exitinterview.selected.selectedRowclearlyExplained = form.selectedRowclearlyExplained > 
<cfset session.exitinterview.selected.selectedRowbyWhom = form.selectedRowbyWhom > 
<cfset session.exitinterview.selected.selectedRowadequateTraining = form.selectedRowadequateTraining > 
<cfset session.exitinterview.selected.selectedRowworkPerform = form.selectedRowworkPerform > 
<cfset session.exitinterview.selected.selectedRowworkingCondition = form.selectedRowworkingCondition > 
<cfset session.exitinterview.selected.selectedRowsalary = form.selectedRowsalary > 
<cfset session.exitinterview.selected.selectedRowretirement = form.selectedRowretirement > 
<cfset session.exitinterview.selected.selectedRowhealthPlan = form.selectedRowhealthPlan > 
<cfset session.exitinterview.selected.selectedRowtuition = form.selectedRowtuition > 
<cfset session.exitinterview.selected.selectedRowunileave = form.selectedRowunileave > 
<cfset session.exitinterview.selected.selectedRowcoworkers = form.selectedRowcoworkers > 
<cfset session.exitinterview.selected.selectedRowsupervisionReceived = form.selectedRowsupervisionReceived > 
<cfset session.exitinterview.selected.selectedRowneededHelp = form.selectedRowneededHelp > 
<cfset session.exitinterview.selected.selectedRowmanagerRespond = form.selectedRowmanagerRespond > 
<cfset session.exitinterview.selected.selectedRowsuggestionsBetterPlace = form.selectedRowsuggestionsBetterPlace > 
<cfset session.exitinterview.selected.selectedRowrealReasonForLeaving = form.selectedRowrealReasonForLeaving > 
<cfset session.exitinterview.selected.selectedRowcomments = form.selectedRowcomments >---> 
<cfsetting showdebugoutput="false"> 
<cfcontent reset="true" > 
<cfoutput>#SerializeJSON(session.exitinterview.selected)#</cfoutput> 

正如其他建議也可以是某些畸形的JSON數據和你在的Application.cfc想通了一些代碼的問題。

相關問題