Yep, that sounds like the problem right there. OpenSocial calls are achieved
in default Shindig by making an XmlHttpRequest to the URL keyed by
"gadgets.osDataUri". XmlHttpRequest only allows same-origin calls. Origin is
defined as the combination of schema and authority in the URL ie.
schema://authority -- which includes protocol, host, and port.

So Isaiah's comment is close but I don't think exactly the right token. In
config/container.js change this:


"gadgets.osDataUri" : "http://%host%/rpc";,

...to this:


"gadgets.osDataUri" : "//%host%/rpc",


This is a schema-relative URL and *should *work for both HTTP and HTTPS.

--j

On Fri, Mar 25, 2011 at 1:57 PM, Doug Ellison <[email protected]>wrote:

> So I'd never used the Network within Chrome so thanks for the heads
> up.  It gives me slightly more information but I'm not quite sure
> where to go...
>
> When I make an HTTP request I get the follow call order
>
> core:rpc.js
> localhost/gadgets/js
> ifr
> /gadgets
>
> makeRequest
> /gadgets
>
> rpc
>
> And everything works OK.
> When I try from https It stops after
> ifr
> /gadgets.
> Additionally Chrome gives another error I don't see on firefox
>
> XMLHttpRequest cannot load
>
> http://10.48.73.232/rpc?st=14413%3A14413%3A0%3Adefault%3Ahttp%253A%2F%2F10.48.70.25%2FEmailGadget%2FEmailGadget.xml%3A1%3Adefault
> .
> Origin https://10.48.73.232 is not allowed by
> Access-Control-Allow-Origin.
>
> I'm not quite sure what its meaning.  I think its saying its not
> allowed because the call originated from https but then makes a call
> to http regularly.  Is that possible?
>
>
>
> On Fri, Mar 25, 2011 at 2:23 PM, John Hjelmstad <[email protected]> wrote:
> > Hi Doug,
> > Sounds like you might have an opensocial endpoint hard-coded to HTTP --
> > random guess. What browser are you using? I'd give Chrome a try and see
> what
> > the Network tab says, to see if a request is being formulated.
> > --j
> >
> > On Fri, Mar 25, 2011 at 11:12 AM, Doug Ellison <[email protected]>
> > wrote:
> >>
> >> I'm running Apache Shindig within a webapp and it seems to work
> >> fantastic in most respects but I'm having one difficulty that I've
> >> spent more then a few days on trying to figure out.
> >>
> >> When I make a call such as
> >>
> >>
> http://localhost/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml
> >> it renders and works.  Also if I do
> >>
> >>
> https://localhost/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml
> >> it renders and works.  I've written a gadget that has the following
> >> calls
> >>
> >> function request() {
> >>           DisplayHTML("<h1> Loading...</h1>");
> >>           var viewerIdSpec = opensocial.newIdSpec({userId: 'VIEWER'});
> >>           var req = opensocial.newDataRequest();
> >>
> >>           req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
> >>           req.add(req.newFetchPersonAppDataRequest(viewerIdSpec,
> >> "*"), "viewer_data");
> >>
> >>           req.send(handleRequest);
> >>        }
> >>
> >> Here is where my problem begins.  If I put my gadget within http:// it
> >> works just fine and as expected.  When I add https:// the method for
> >> handling the response never gets called.    So it seems to be a
> >> problem within routing between http and https but only with certain
> >> gadgets.  However I can't seem to find a configuration option or don't
> >> understand enough to know whats really happening. Any help would be
> >> greatly appreciated.
> >
> >
>

Reply via email to