Before I discuss my problem, it is important to know the architecture of my 
application. I am working on a facebook iframe application. The iframe 
domain is*app-1.appspot.com. *This loads all the UX part - JS, HTML, CSS, 
images whatever you see. All the back end part is handled by *
app-2.appspot.com*. So, whenever I have to store something in datastore, use 
memcache or even urlfetch, everything happens from *app-2*.

I am using Channel API for a major module of the app. And the flow is 
similar to what is demonstrated in the tic-tac-toe application. Client 
initiates a request for channel, server sends a token, client does an onopen 
call and tells server that it is ready and so on.

The token generated is from app-2.appspot.com and it is send to the client. 
The client makes a call and the call goes to app-1.appspot.com instead of 
app-2.appspot.com. In the xhr.open(), i have explicitly mentioned the full 
url which includes something like app-2.appspot.com/open but somehow, I can 
see that the calls for channel are going to app-1.appspot.com/_ah/channel 
and since no channel is created on app-1, nothing comes back. 

Looking at the xhr() call, it seems that it is a normal AJAX POST request. 
If it is a normal asynchronous request, then this scenerio makes sense 
because i won't be able to make xhr calls to a different domain. So, here 
are my questions

1. The xhr() is a normal XMLHttpRequest or it is some wrapper over things 
which are pretty complex below?
2. Can I make a call to app-2.appspot.com, when my base domain is 
app-1.appspot.com?
3. If answer to question 2 is no, what are the alternatives? Can i use flash 
requests/response to overcome this situation? In other words, can I create a 
flash wrapper over Channel API so that i can get cross domain calls without 
any loss of functionality?
4. If appengine restricts (on the dev server/production server) that cross 
domain calls can not be made, is there some low level hack which can enable 
me to do so?

People will run into these issues when they are developing applications for 
social networking portals like facebook and myspace. Facebook does not 
provides a container, so you will have to use your own container. If my code 
and backend both resided on app-1.appspot.com, I would probably never run 
into this situation. But when it comes to myspace, they have their own 
container, and the base domain is their domain itself. They provide APIs for 
doing calls. This gives rise to one more questions?

5. How do we do channel API calls inside a container of a portal?

Thanks in advance,

--
Pranav Prakash 

"temet nosce"

(http://blog.myblive.com)

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to