2014-01-14 198 views
0
var objectData ={ 
      "emailAdress" : document.getElementById('emailAddress').value , 
       "password":  document.getElementById('password').value } 

var objectDataString = JSON.stringify(objectData); 
alert(objectDataString); 


    var url = "url"; 
var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    alert('connected..'); 
    } 
    }; 
xmlhttp.open("POST",url,true); 
xmlhttp.send(objectDataString); 

     $.ajax({ 

      type: "POST", 
      URL:"login.php", 
      contentType:"application/json", 
      CrossDomain:true, 
      data: JSON.stringify(objectData),  
      dataType: 'json', 
      success: function (data) { 

       alert("success"); 
       var ret = jQuery.parseJSON(data); 
       alert(ret); 

我已經登錄表單包含用戶名和password.i要轉換的是用戶輸入的信息爲JSON並將其發送到解析的server.but越來越JSON錯誤。無法找到錯誤。請告訴我在哪裏做錯了..?我試圖從這麼多小時,但無法找到。要求JSON解析失敗,出現錯誤解析JSON文件

+0

不可能說出了什麼問題,你**沒有顯示你想要解析的**。顯示數據包含的內容,當你試圖解析它時。 –

+0

爲什麼直接使用XHR,*和*使用jQuery的'ajax'?這將發送兩次請求。 –

+0

並注意''ajax'沒有'CrossDomain'選項。 JavaScript區分大小寫。有一個'crossDomain'選項。 –

回答

1

忽略XHR代碼,只是看ajax電話:

  1. 有沒有CrossDomain選項。雖然有一個crossDomain選項。 (JavaScript區分大小寫。)儘管如此,您可能完全不希望使用該選項。

  2. 你告訴jQuery返回的數據是JSON。這意味着jQuery會在給你data參數給你的成功函數之前解析它。您不需要(或者不想)就可以撥打JSON.parse,這已經爲您完成了。 data將被解析數據。