You need to sign in to do that
Don't have an account?
VF Pages redirection problem in Force.com Sites
Hi All,
I am facing a problem with visualforce pages behaviour after being moved to Force.com Sites.
When the VF pages were moved to Site, the redirection that was working fine fails to work anymore.
The requirement is that we need to traverse across some 4,5 pages capturing the user entry in each and carrying it till the last page where we are doing a save to an object.
I have associated the same controller with all pages and redirecting using:
PageReference redirect = new PageReference('/apex/survey3');
return redirect;
This works fine before moving to Sites.
But once moved to Sites, it doesn't redirect at all, just refreshes the same page.
When the code is changed as below, it redirects but the view state is not maintained I guess and hence the values are not carried over as required.
PageReference redirect = new PageReference('/survey3');
return redirect;
Could you provide any information on what might be wrong ?
Thanks in advance.
Regards,
Lakshmi.
Was revisiting this post after long and thought of mentioning what was actually wrong in this case.
It was the firewall in the office network that was causing the VF pages to misbehave after being moved to Force.com Sites.
Regards,
Lakshmi.
All Answers
I wouldn't expect the view state to be lost just because you have moved to sites. The '/apex/page' notation won't work in sites as the apex aspect isn't needed. Its better to use the Page notation:
as this will work correctly regardless of whether you are accessing from sites or internal.
I assume all of your pages are using the same controller?
Hi Bob,
Thank you for reply.
I changed it to Page.survey3.
Still it doesn't work in Sites(it just refreshes the same page), but works fine otherwise.
And yes, I am associating the same controller with all the pages.
This is webpage error details that comes in the browser:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Timestamp: Wed, 8 Aug 2012 07:48:25 UTC
Message: Expected '}'
Line: 1546
Char: 203
Code: 0
URI: http://resmed.dev.cs14.force.com/survey/jslibrary/1341513998000/sfdc/main.js
Message: 'LC' is undefined
Line: 1
Char: 1
Code: 0
URI: http://resmed.dev.cs14.force.com/survey/jslibrary/labels/1343830263000/en_US.js
Message: 'Sfdc' is undefined
Line: 1
Char: 1
Code: 0
URI: http://resmed.dev.cs14.force.com/survey/jslibrary/1341513998000/sfdc/VFState.js
Message: 'ApexPage' is undefined
Line: 45
Char: 23
Code: 0
URI: http://resmed.dev.cs14.force.com/survey/survey1
Message: 'Sfdc' is undefined
Line: 72
Char: 1
Code: 0
URI: http://resmed.dev.cs14.force.com/survey/survey1
Any idea what else might be wrong ?
Regards,
Lakshmi.
Do you have the javascript error when the page loads, or when you attempt to submit it back?
Hi Bob,
Just cross checked that now.
The error is displayed on page load, as well as after clicking the next button(on which the redirect code should be executed.)
Again, none of this is there when the page is accessed normally, other than from Sites.
Regards,
Lakshmi.
When I've encountered this before its been that I'm relying on some javascript which is available from the standard Salesforce UI but is not present when accessing via sites. Tracking it down is often interesting - the last time I looked at the source of the standard page and added in the libraries one by one until I found the one that was required.
Oh ok. That is interesting indeed.
And how can we add in the required libraries to our page ?
Regards,
Lakshmi.
Do you mean going to "View source" of the original page (not the one in Sites).
Finding out the ones missing and adding to the VF page in a script tag ?
Like - <script src="/jslibrary/1341513998000/sfdc/main.js"></script>
Regards,
Lakshmi.
It depends if they are exposed externally or not. I start off pasting the script address into a separate browser page and check its available. if it isn't, I download it, upload as a static resource and then add that to the site page.
The other way to approach this is to comment out parts of the visualforce page and see what causes the error to go away. It might be as simple as using a different component.
Ok, Will check out that approach.
Thanks a lot for your help.
Regards,
Lakshmi.
Was revisiting this post after long and thought of mentioning what was actually wrong in this case.
It was the firewall in the office network that was causing the VF pages to misbehave after being moved to Force.com Sites.
Regards,
Lakshmi.