2011-02-16 2 views
0

나는이 같은 기능을했습니다 :이 호출되는jQuery는 localhost보다 서버에서 다른 방식으로 데이터를 인코딩합니까?

function flush_changes() { 
      jQuery('#save-changes').replaceWith('<span id="save-changes">Saving..</span>'); 
      var changes = new Array(); 
      for (var i=0; i<edited_users.length; i++) { 
       changes.push({ 
        id: edited_users[i], 
        first_profession: jQuery('#user_first_profession_' + edited_users[i]).val(), 
        second_profession: jQuery('#user_second_profession_' + edited_users[i]).val() 
       }); 
      } 
      jQuery.post("${tg.url('/users/admin_user_professions/save')}", 
         { 
          changed_users: changes, 
          num_of_changed_users: changes.length 
         }, 
         function(data) { 
          if (data.result == 'OK') { 
           location.href = location.href;  
          } else { 
           alert('Error while saving: ' + data.reason); 
          } 
         }, 'json'); 
     } 

, 나는 (내가 내 프로덕션 서버에서 응용 프로그램을 실행할 때 내가 볼 때 내 데이터가 제대로 전송 볼 수있는 로컬 호스트에서 응용 프로그램을 실행하는 경우

changed_users:[object Object] 
num_of_changed_users:1 

이유는 생산에 내가 "개체 개체"를 얻을 서버를 다음과 같이) 전달 된 데이터를 웹킷 관리자를 사용하고 계십니까? jQuery 라이브러리는 두 환경에서 동일합니다.

미리 감사드립니다. 여기에 편집

changed_users%5B0%5D%5Bid%5D:314 
changed_users%5B0%5D%5Bfirst_profession%5D:5 
changed_users%5B0%5D%5Bsecond_profession%5D:6 num_of_changed_users:1 
+0

같은 방법을 사용하고 (서버 측 URI의 필요 디코딩이 자동으로 수행되지 않습니다) (webkit inspector)를 사용하여 localhost에서도 데이터를 탐지 할 수 있습니까? – Vadim

+0

localhost에서 실행할 때 webkit inspector 출력을 제공하십시오. – jondavidjohn

+0

네, webkit 검사기를 사용하여 localhost의 데이터를 검사합니다. localhost에서 생성 된 출력을 추가했습니다. –

답변

0

당신이 서버에 JSON 데이터를 전송하는 로컬 호스트에있는 관리자의 출력, 당신은 당신의 서버 스크립트는이 데이터를 얻을 방법을 어떻게보고해야 그들을 해독합니다. 예를 들어 php에서 json을 배열이나 객체로 변환하는 데 json_decode를 사용하는 경우 프로덕션 서버에서이 프로세스가 자동 (구성 별) 일 수 있습니다. 또한 서버로 데이터를 보낼 때 텍스트에 encodeURIComponent를 사용하는 기억, 귀하의 경우에는 내가 이런 짓을 했을까 :

....... 
first_profession: encodeURIcomponent(jQuery('#user_first_profession_'+edited_users[i]).val()), 
....... 

관련 문제