用AJAX代替另一个

时间:2012-09-12 16:52:58

标签: ajax google-chrome google-chrome-extension

Chrome是否有任何简单的方法可以在不更改DNS的情况下将AJAX调用重定向到其他服务器? (例如:对http://domain.com/page.html的调用将定向到http://localmachine.com/page.html

我知道这可以通过更改DNS来实现,但这并不能解决我的问题,因为当我只想捕获一个URL时,它会向localmachine发送所有domain.com请求。

提前致谢!

PS:如果有人知道已经做到这一点的扩展,那将非常受欢迎。如果没有,我将尝试在我自己的

上开发Chrome扩展程序

补充:清单文件(在apsillers评论之后):

{
  "name": "My Extension",
  "version": "0.1",
  "background": {
  "script": "background.js"
  },
  "permissions" : [
    "webRequest",
    "webRequestBlocking",
    "background",
    "*://*/*"
  ],
  "manifest_version": 2
}

1 个答案:

答案 0 :(得分:0)

使用webRequest API中的onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
        // only redirect if accessing this page via Ajax
        if(details.type == "xmlhttprequest") {
            return {redirectUrl:"http://localmachine.com/page.html"};
        }
    },
    {urls: ["http://domain.com/page.html"]},
    ["blocking"]);

这会设置一个重定向脚本,捕获http://domain.com/page.html的所有Ajax请求,并使它们从http://localmachine.com/page.html返回结果。浏览器无法知道重定向已经发生;即,它认为结果确实来自domain.com