Chrome扩展程序重定向Facebook webRequest

时间:2013-09-28 11:58:47

标签: ajax facebook google-chrome redirect webrequest

我正在开发一个隐藏活动的Facebook扩展程序(例如,20分钟前的最后一次活动)。因此,我正在尝试重定向表单

的请求
  

https://0-p-06-ash2.channel.facebook.com/pull?idle=2&state=active& ...

表单

的请求
  

https://0-p-06-ash2.channel.facebook.com/pull?idle=50000& ...

使用webRequest API,onBeforeRequest。现在,当我在本地测试页面上尝试我的重定向技术时,我已经完成了自己,我发送了一个ajax请求并随后使用该插件重定向它,它完美地工作。网络检查员将第一个请求显示为待处理,然后添加新请求。 ajax调用收到的数据是正确的,i。即第二个请求应该返回什么。

但是,当插件在Facebook上运行时,第一个请求不会显示为待处理,但会被取消,而且根本不会发送第二个请求。

这是我使用的代码(大约):

var callback = function(details){

    var ajaxURL = details.url;

    if(ajaxURL.indexOf('pull?channel') > -1){ // find activity log request

        var newURL = ajaxURL.replace('&state=active', '').replace(/idle\=[0-9]{0,}/gi, 'idle=50000');

        return {redirectUrl: newURL};

    }

    return {cancel: false};

}

filter = {urls: ["<all_urls>"]};

chrome.webRequest.onBeforeRequest.addListener(callback, filter, ["blocking"]);

在我看来,Facebook找到了一种在实际发送请求之前检测重定向的方法,但根据this question on Stackoverflow,它不应该是可能的。

那么他们是如何做到的,我该如何规避呢?提前谢谢。

0 个答案:

没有答案