2011-11-18 3 views
0

페이지를 리디렉션하고 json 데이터를 첨부하려고합니다.Javascript jQuery가 JSON 데이터로 리디렉션

저는 현재 window.location.href 명령 을 사용하고 있으며, GET 매개 변수를 추가하고 있습니다.

어떻게 JSON 데이터를 추가 할 수 있습니까?

미리 주께

+0

무엇을 JSON 데이터를 추가를 사용하여 해시 값을 디코딩? 당신이 갖고있는 것과 당신이하고 싶은 것을 보여줄 수 있습니까? – lonesomeday

+0

페이지를 리디렉션하고 데이터를 첨부하려고합니다. U는 POST 또는 GET으로이를 수행 할 수 있지만 JSON을 통해 보낼 수 있습니까? –

+0

그럼 리디렉션은 어떻게 생겼을까요? URL은 무엇입니까?> – lonesomeday

답변

2

네, 가능 - base64 인코딩 및 부분 식별자를 사용하여, 당신도 없습니다 GET을 사용하여 데이터를 보내십시오.

  • JSON 개체를 base64 인코딩하십시오. 그러면 URL 저장 문자열이 생성됩니다 (예 : KJDF4822kdj
  • http://your.domain/page#KJDF4822kdj으로 리디렉션). KJDF4822kdj을 조각 식별자로 사용합니다.
  • page으로 변경하고 window.location.hash
  • 조각을 base64- 디코딩하고 JSON 개체로 평가합니다.
+0

환호하는 m8 감사합니다. –

-1

수 없습니다. GET은 아주 간단한 JSON 객체 (기본적으로 중첩 된 구조를 사용할 수 없음)에서만 작동합니다. 좀 더 복잡한 일을해야하는 경우

는 POST 요청 $.ajax(type='POST')을 사용하고 개체를 직렬화해야합니다

var jsonObjects = [{id:1, name:"amit"}, {id:2, name:"ankit"},{id:3, name:"atin"},{id:1, name:"puneet"}]; 

jQuery.ajax({ 
      url: <Url of the action>, 
      type: "POST", 
      data: {students: JSON.stringify(jsonObjects) }, 
      dataType: "json", 
      beforeSend: function(x) { 
      if (x && x.overrideMimeType) { 
       x.overrideMimeType("application/j-son;charset=UTF-8"); 
      } 
      }, 
      success: function(result) { 
     //Write your code here 
      } 
}); 
+0

GET 요청에서 중첩 된 구조를 가질 수없는 기술적 인 이유는 없습니다. 그것은 열악한 디자인이지만, 기술적으로는 가능합니다. – lonesomeday

+0

이 페이지로 보내지 만 그것을 URL로 리디렉션합니까? –

0

네, Javascript/Jquery를 사용하여 이것을 달성하는 것은 매우 쉽습니다.

1) base64-encode을 사용하여 JSON 객체를 인코딩합니다. 그러면 문자열이 생깁니다.
2) - 리디렉션 - 투 URL URL # base64encodedJSONobjectVal 같이
3) = document.location.href에 피 재 투 URL # base64encodedJSONobjVal

의 끝에서 추가로 다른 쪽/대상 쪽
1) location.hash를 사용하여 해시 값을 검색하십시오.
2) 리터럴 해시 값을 제거합니다.
3) base64 decode

데모 및 자세한 내용은 https://gist.github.com/kmario23/66adb1922a245aa97576

관련 문제