2011-10-19 2 views
1

javascript 앱을 홈페이지 사이드 바 구성 요소에서 실행하고 있습니다. Apex 컨트롤러에 액세스해야하며 javascript 리모팅은 홈 페이지 구성 요소에 있기 때문에 VF를 사용할 수 없다는 점을 제외하고는 적합 할 것입니다. 실제 원시 자바 스크립트에서 자바 스크립트 리모팅을 사용할 수 있습니까?Salesforce javascript remoting : javascript (즉, Visualforce가 아닌)에서 가능합니까?

주 - 기본 페이지의 항목에 액세스해야하므로 홈페이지 구성 요소의 iframe에 VF 페이지를 넣을 수 없습니다.

+0

Visualforce 없이는 JS 리모팅을 할 수 없지만 세션 ID가 있다고 가정하면 Apex REST 메서드를 쉽게 호출 할 수 있습니다. – metadaddy

답변

1

Visualforce 페이지 및 주석이 달린 컨트롤러가 없으면 JAVAScript Remoting을 사용할 수 없습니다. 대신 웹 서비스, Ajax- 툴킷, REST API를 사용할 수 있습니다.

+0

예제는 어떻습니까? 나는 그 바보 같은 101 가지 오류 중 하나를 얻지 않고도 다음과 같은 일을 할 수있는 것 같지 않습니다. ' xmlHttp = new XMLHttpRequest(); xmlHttp.open ("GET", "/ services/apexrest/FeedbackRest? action = popup & config = Default", false); xmlHttp.send(); console.log (xmlHttp.responseText); ' – tggagne

+0

위의 코드 포맷에 불편을 끼쳐 드려 죄송합니다. 내가 backticks에 도착하는 방법과 그들이 속한 곳을 보여주는 개줄을 알아낼 수 없다. – tggagne

1

위에서 제안한 Ajax-toolkit, REST API와 같은 방식으로 HTML 또는 Image 유형 홈페이지 구성 요소에서 salesforce 컨텍스트에 액세스 할 수 없습니다. Ajax 툴킷을 사용하려면 html 홈 페이지 컴포넌트에서 얻을 수없는 salesforce 세션 ID가 필요합니다.

유일한 해결책은 LINK 유형 홈페이지 구성 요소를 사용하는 것입니다. 이 구성 요소를 사용하면 클릭시 메소드를 호출 할 수 있습니다. 이 메소드에서 salesforce 컨텍스트 변수에 액세스 할 수 있으므로 {! $ Api.Session_ID}를 호출하여 Salesforce sessiod ID를 확보 할 수 있습니다.

클라이언트 세션에서이 세션 id를 설정하고 html Homepage Component에서 가져 와서이 id를 ajax 툴킷 호출에 사용하십시오.