Hosting Components in an External Web Site Without iframes

Hosting BrainHoney components without iframes is extremely advanced and requires server side code and proxys on your external web site or portal to function. This method requires the use of Raw Component URLs, the FrameApi component and a custom proxy URL on your server.

Requesting Raw Components

A Raw Component URL retrieves the raw HTML of a component. Using a Raw Component URL, you can make an HTTP request from one of your server pages to embed the raw HTML content of a component into your page before sending it back to the browser.

The component returned from the Raw Component URL still assumes the existence of the Frame API on the containing HTML page. The page hosting the raw component must supply it using the FrameAPI raw component.

While requesting raw components using this method, you must also supply an HTTP header named X-BH-AppRoot that specifies the URL of the proxy implemented on your server. The requirements for this proxy URL are described below. Here is an example of the HTTP header:

Server Proxy URL

The server proxy URL must broker the BrainHoney authentication cookie as well as pass all requests to the BrainHoney web server. The requests and responses must maintain all headers, parameters, post data and content from both sides.

The proxy URL is virtual and must pass the part of the path after the proxy base URL, including any query parameters, to the BrainHoney web server. For example, assume the base proxy URL is the following:

Assume further that a component requests the following URL:

The proxy server must then transform this into a proxy request to something similar to this:

You must also detect any Standalone Component URLs, Standalone Resource URLs or Raw Component URLs the browser requests through the proxy and add the X-BH-AppRoot HTTP header as described above.

Embedding Raw Components

For raw components to display correctly, you must place the returned HTML inside of <DIV> tags that do not have default positioning.

This is a bad example:

<!-- Raw component content here -->

This is a good example:

<div style="position:relative;">
<!-- Raw component content here -->
See Also
With iframes URL Syntax FrameApi