For a while, XmlHttpRequests have had a restriction that they could not be
made to another domain. This is a security precaution.

There has been work made to allow cross domain requests, and still trying to
keep it secure, but I haven't read up on that, and I doubt it works in
slightly older browsers (IE7/8), but I could be wrong.



On Mon, Nov 8, 2010 at 11:07 AM, Nacho G <[email protected]> wrote:

> Thanks a lot Sean, that works for me.
> One last question. I've been reading about this for the past 4 hours
> and I still don't understand why the browser doesn't get pass the
> preflight request when I do a normal request, is something the other
> side must sent to accept the connection?
>
> On Nov 8, 7:19 pm, Sean McArthur <[email protected]> wrote:
> > Yes, the server would have to wrap it. If you have no control, you could
> > consider using YQL. YQL could let you provide the XML location, and even
> get
> > it converted to JSON. You can play with it in the console here, and after
> > making sure you get what you want, copy the url it provides
> >
> > http://developer.yahoo.com/yql/console/#h=select%20*%20from%20xml%20w...
> >
> > On Mon, Nov 8, 2010 at 10:17 AM, Nacho G <[email protected]> wrote:
> > > I think I understand. It is the server which has to wrap the response
> > > in the callback function I send. But that must be implemented on the
> > > other side, isn't it ?
> >
> > > On Nov 8, 7:14 pm, Nacho G <[email protected]> wrote:
> > > > I don't have control and I have to figure this out without asking the
> > > > engineers who has put the file. I'm trying to get the data from an
> > > urlhttp://www.url.com/path/filename.xml. How can I now if I have
> access
> > > > to passing a callback get parameter?
> > > > I'm trying something like this:
> >
> > > >                 var request = new Request.JSONP({
> > > >                     url: 'http://www.url.com/path/filename.xml',
> > > >                     method  : 'GET',
> > > >                     callbackKey: 'callback=myfunc'
> > > >                 });
> > > >                 request.send ();
> >
> > > > window.myfunc = function(data) {
> >
> > > > };
> >
> > > > myfunc is supposed to do something, I don't know what.
> >
> > > > On Nov 8, 7:03 pm, Sean McArthur <[email protected]> wrote:
> >
> > > > > Do you have control over the XML resource? I assume it's coming
> from
> > > some
> > > > > back-end script that is generating it. If not, you could ask the
> > > engineers
> > > > > that do you have access to allow passing a "callback" GET
> parameter.
> >
> > > > > On Mon, Nov 8, 2010 at 9:59 AM, Nacho G <[email protected]> wrote:
> > > > > > Excuse my ignorance but I'm not sure how to do that and I can't
> find
> > > > > > more information about the jsonp callback
> > > > > > Could you give a little example ?
> >
> > > > > > thanks a lot
> >
> > > > > > On Nov 8, 6:31 pm, Sean McArthur <[email protected]> wrote:
> > > > > > > You could look up the new cross domain request stuff, but using
> > > JSONP
> > > > > > might
> > > > > > > be easier. It's not parsing the XML as JSON.
> >
> > > > > > > The idea of JSONP is that you make a cross domain request, and
> > > provide a
> > > > > > > callback function. The server spits out JSON, and wraps it in
> the
> > > > > > callback
> > > > > > > function.
> >
> > > > > > > my_callback({ "a":"stuff", "b":"otherstuff"});
> >
> > > > > > > Request.JSONP makes the callback stuff real easy for you. As
> well,
> > > this
> > > > > > > request is put inside a script element, so it can execute as
> > > JavaScript.
> > > > > > To
> > > > > > > get your XML request to work, it would have to wrap the XML
> with
> > > the
> > > > > > > callback method that Request.JSONP is sending, and escape all
> the
> > > XML to
> > > > > > fit
> > > > > > > inside a single string.
> >
> > > > > > > my_callback('<things><thing id="one">a thing</thing><thing
> > > id="two">it\'s
> > > > > > > another thing</thing></things>');
> >
> > > > > > > On Mon, Nov 8, 2010 at 8:43 AM, Nacho G <[email protected]>
> wrote:
> > > > > > > > Hello, I'm trying to get data from a remote XML file but I'm
> > > getting a
> > > > > > > > preflight request with REQUEST because I'm requesting a
> > > cross-domain
> > > > > > > > XMLHttpRequest.
> >
> > > > > > > > With Request.JSONP I don't have that problem and I get the
> data
> > > from
> > > > > > > > the remote XML but the problem is that mootools parse the
> result
> > > and
> > > > > > > > it gives an error as the result is XML not JSON.
> >
> > > > > > > > how can I make a regular Request avoiding the preflight
> request?
> > > or
> > > > > > > > how can I stop JSONP from parsing the result?
> >
> > > > > > > > thanks
>

Reply via email to