我正在使用OAuth和PHP设计Google Contacts Import应用程序。我正在尝试计算初始请求页面如何与我的回调页面进行交互。
页面结构:
页面A:回拨页面
页面B:OAuth请求页面
过程:
用户点击页面A上的“导入联系人”,新窗口(页面B)打开并指向Google OAuth登录。
页面B包含交换OAuth令牌的脚本;一旦访问完毕,页面B弹出窗口关闭并将访问令牌传递给页面
页面A使用从页面B获取的访问令牌,提取Google XML数据,解析它,并通过AJAX刷新以显示已解析的联系信息。
现在,我只能与弹出窗口B页中的回调信息进行交互。我想要做的是从第B页到第A页的传递信息。
我确定这需要某种AJAX编程,但是你能告诉我实现这一目标的一般设计逻辑吗?无需特定代码。
答案 0 :(得分:1)
通信两个页面的一种方法是使用公共存储位置(服务器上的数据库),并使用setInterval()
setInterval(function(){
//Your AJAX code to get data from common database here
}, 1000); //1000 will make a request each second
如果你用window.open打开另一个窗口,另一种方法是在两个页面中都有全局javascript函数(默认为public),并从另一个页面调用它们。
网页A
var pageB = window.open("pageB");
function receiveDataFromPageB(data){
//Do something with data
}
...
//This should be called when needed, for example to send the token
pageB.receiveDataFromPageA(some_data);
Page B
var pageA = window.opener;
function receiveDataFromPageA(data){
//Do something with data
}
...
//This should be called when needed, for example to send the token back
pageA.receiveDataFromPageB(some_data);
我认为这将指导您能够在您的网页之间进行对话。 希望这可以帮助。干杯