MS CRM 2013 sitemap links to external pages broken when coming from a different sitemap link to an external page

StackOverflow https://stackoverflow.com/questions/23300446

Вопрос

We have a solution that contains 2 sitemap links that don't link to an entity in CRM but rather link to a web resource in CRM whose sole purpose is to redirect to an external ASPX page.

Sitemap link --> Please wait page --> Redirect to ASPX page --> Use ASPX page inside CRM

This loads our page nicely inside of CRM and works great for our needs.

However... We have 2 of these links. When you navigate to one of these links from anywhere in CRM they load just fine on their own. When you navigate to one of these pages from the other one, we get a blank white page where nothing loads. Nothing on any browser debugging tools, I haven't seen anything in Fiddler. As far as I can tell, nothing happens at all.

Click Sitemap link 1 --> Please wait page redirects to page 1 --> Page displays correctly --> click Sitemap link 2 --> stare at blank white page.

This works the other way around as well...

Click Sitemap link 2 --> Please wait page redirects to page 2 --> Page displays correctly --> click Sitemap link 1 --> stare at blank white page.

I'm not sure what other information I can give. The page is a set of Kendo grids that is reaching outside of CRM for its data and building some usage reports. I don't really think there's anything special going on that would cause an issue in the page itself. Especially since we never get to the aspx page. We never even see the Please Wait web resource displayed. It's just a blank page with seemingly nothing going on.

This specific instance I'm using is an Office 365 CRM 2013 trial so it's a completely vanilla CRM with no other customizations outside of my solution.

Has anyone ever seen any behavior like I've outlined or have any ideas on how I could troubleshoot this?

Это было полезно?

Решение

This is an issue that was introduced in UR1 of Dynamics 2013.

We follow an identical process with our product and we hit this same problem after upgrading.

What is happening is that there is some JS code buried deep inside Microsofts Dyanamics JS, that is called before you navigate to a new area from the site map. This code tries to interrogate the main content iframe - presumably to check for unsaved changes, or generate the crumb trail.

However, where your ASPX page is the content of that IFrame it hits a Cross-Domain "Access Denied" error when trying to access the Iframe, and the rest of their code drops out and leaves you with a blank screen.

The workaround for us was to change our Web Resource that performs the redirect to include a full-size Iframe and set the source of that to our ASPX page - in essence you result in having and iframe within an iframe. So when Dynamics later comes to try and talk to the main Content Iframe, it is still the original web resource, and no longer cross-domain so the JS doesn't break.

Другие советы

Maybe the Try Using Tiny Url. By using Tiny Url you can short down the url.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top