2014-01-14 1 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); 

사용자 ID와 암호가 포함 된 로그인 양식이 있습니다 .i 입력 한 정보를 json으로 변환하여 서버로 보내야합니다.하지만 json 파싱 오류 .unable 오류를 찾으려면 어디에서 잘못하고 있는지 말해 ... .. 너무 많은 시간을 시도하지만 찾을 수 없습니다.요청한 json 구문 분석에 실패했습니다. json 문서를 구문 분석하는 동안 오류가 발생했습니다.

+0

무엇이 잘못되었는지를 말하기는 불가능합니다. ** 당신이 분석하려고하는 것을 보여주지 않았습니다 **. 당신이 그것을 파싱하려고 할 때'데이터가 무엇을 포함하고 있는지 보여주십시오. –

+0

jQuery의'ajax'를 사용하여 XHR을 직접 사용하고 * 및 * 사용하는 이유는 무엇입니까? 그러면 요청이 두 번 전송됩니다. –

+0

그리고'ajax'는'CrossDomain' 옵션을 가지고 있지 않습니다. JavaScript는 대소 문자를 구분합니다. 'crossDomain' 옵션이 있습니다. –

답변

1

XHR 코드를 무시하고, 단지 ajax 전화보고 :

  1. 는 더 CrossDomain 옵션이 없습니다. 하지만 crossDomain 옵션이 있습니다. (자바 스크립트는 대소 문자를 구분합니다.)하지만, 당신이 제공하는 URL로는 그 옵션을 전혀 원하지 않을 것입니다.

  2. 당신은 jQuery에게 돌아 오는 데이터가 JSON이라고 말하고 있습니다. 즉, jQuery가 성공 함수에 대한 인수를 data으로 지정하기 전에 구문 분석합니다. JSON.parse을 호출 할 필요가 없습니다. 이미 완료되었습니다. data은 구문 분석 된 데이터입니다.

관련 문제