2014-10-22 8 views
2

왜 이렇게 오래 오래 사용할 수 없는지 알아 내려고 노력했습니다. 그것이 도움을 요청할 때라고 생각해보십시오.X-Editable/jQuery, Chrome을 사용하여 JSON을 읽을 수 없습니다.

X-Editable을 사용하는 자바 스크립트가 있습니다. 내 페이지가 내 서버에 AJAX 요청을 제출합니다. 내 서버는 db 키가 포함 된 JSON으로 응답합니다. 문제는 Chrome이 JSON을 인식하지 못하는 것입니다.

개발 도구는 응답을 보여줍니다 사양이 내가 성공을 가지고 생각하지 않는다

HTTP/1.1 200 OK 
Date: Wed, 22 Oct 2014 20:04:12 GMT 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Content-Type: text/javascript;charset=UTF-8 
Content-Length: 30 
Server: Jetty(7.6.13.v20130916) 

{"success":true,"actionid":66} 

을하지만, X-편집은을 참조한다. 나는 그것을 가지고 다니려고했는데 아무런 차이가 없다.

아래 함수는 AJAX 요청을 처리하고 성공/실패를 처리합니다. 단, 성공 루틴은 어떤 이유로 호출되지 않습니다. 이날 오전

$('#save-btn').click(function() { 
    $('.new-link-param').editable('submit', { 
     url: '/newlink', 
     ajaxOptions: { 
      type: 'post' 
     }, 
     success: function (data, config) { 
      // console.log(JSON.stringify(data)); 
      // console.log(data.actionid); 
      // console.log(typeof data); 
      // if(data && data.actionid){ // assumes response like {"actionid": 2} 
      //  alert(true); 
      //  $(this).editable('option', 'actionid', data.actionid); 
      //  $(this).removeClass('editable-unsaved'); 
      //  var msg = "Link saved."; 
      //  $('#msg').addClass('alert-success').remove.Class('hidden').removeClass('alert-error').html(msg).show(); 
      //  $(this).off('save.newuser'); 
      // } 
      // else if(data && data.errors){ 
      //  config.error.call(this, data.errors); 
      //} 
      alert(true); 
     }, 
     error: function(errors) { 
      alert(false); 
      var msg = ""; 
      if(errors && errors.responseText){ 
       msg = errors.responseText; 
      } else { 
      console.log("Error: " + errors.responseText); 
      } 
}}).editable('destroy').removeClass().removeAttr('id').parent().parent().children("button").remove(); 
}); 
} 

는 성공 기능 라고하기했지만, 데이터가 존재하지만 같이 if 문 내부 false를 반환했다. 어떤 이유로, data.actionid는 정의되지 않았습니다. 왜 이것이 바뀌 었는지 모르겠습니다. 위에 붙여진 응답을 받으면 공격을 받아야한다고 생각합니다.

JS 코드가 성공적으로 등록되고 JSON이 반환 된 것을 인식하기 위해 내가해야 할 일이 궁금합니다.

답변

0

해결책은 내가 ajaxOptions{ dataType: 'json'}으로 지정해야한다는 것입니다.