음, CF 세션 구조와 jQuery는 서버의 CF와 브라우저의 jQuery의 두 가지 영역에서 작동합니다. Ajax에서 ColdFusion 구조체를 [cfc] ...로 보내려면 세션 구조를 json 문자열로 직렬화 한 다음 그 json 문자열을 클라이언트에 전송해야합니다. 대부분의 경우, 당신은 클라이언트 페이지의 렌더링의 일환으로이 작업을 수행 할 수 있습니다 : 필요에 따라
<cfoutput>var jsonStruct = #SerializeJSON(session.myStruct)#;</cfoutput>
그런 다음 당신이 (진짜 JS 개체로) 당신의 jQuery 코드에서
jsonStruct
변수를 사용할 수 있습니다. 다시 CF로 전송해야하는 경우, 당신은과 같이, 자바 스크립트 측에서 다시 직렬화 할 수 있습니다 : 당신이
json2.js을 포함해야
$.ajax({
url: "foo.cfc?method=myMethod",
dataType: "json",
data: {myStruct: JSON.stringify(jsonStruct)},
success: function (respJSON) {
jsonStruct = respJSON;
}
});
참고 직렬화를 수행하기 위해, 일부 브라우저 기침 IE 기침 때문에은 기본적으로 JSON.stringify()
을 지원하지 않습니다.
난 당신이 CFC의 응답을 사용하는 자바 스크립트 객체를 업데이트 할 수 있습니다 방법을 보여 예제 jQuery 코드를 업데이트 한
업데이트. 제대로 작동하려면 CF가 다음과 같이 표시되어야합니다.
<cffunction name="myMethod" access="remote" returnFormat="json">
<cfargument name="myStruct" type="string">
<cfset var realStruct = DeserializeJSON(arguments.myStruct)>
<cfset session.myStruct = realStruct><!--- or whatever you want to do with it at this point --->
<cfreturn session.myStruct>
</cffunction>
그래서 저는 jsonStruct를 사용하여 CF 구성 요소로 전송합니다. JSON.stringify는 CF로 구조를 수정합니까? 성공시 구조를 반환 할 때 변경된 세션 구조를 원래 페이지의 현재 세션 구조에 다시 할당하려면 어떻게해야합니까? – user1100412
SerializeJSON은 CF 객체를 가져 와서 문자열로 렌더링하는 CF 함수입니다. JSON.stringify는 javascript 객체를 사용하여 문자열로 렌더링하는 javascript 함수입니다. –
저는 CFC와 jQuery간에 어떻게 돌아가는지 보여주는 답변을 업데이트했습니다. –