将MySQL查询发送到我从其他站点拥有的站点(使用谷歌浏览器扩展)

时间:2011-01-12 09:03:11

标签: mysql screen-scraping cross-domain google-chrome-extension

我想写一个Google Chrome扩展程序,可以从我不拥有的网站(www.notmysite.com)获取信息,将该信息发送到我拥有的网站(www.mysite.com),并且在我的网站上使用该信息进行某种MySQL查询。

例如,我希望能够从www.notmysite.com上的HTML中解析一些javascript变量,并将其插入www.mysite.com上的MySQL数据库中。我将XMLHttpRequests从一个www.notmysite.com页面发送到另一个页面没有问题,但是当我尝试连接到www.mysite.com时遇到了跨域脚本限制。

有解决方法吗?似乎应该有,因为我拥有www.mysite.com!

(这实际上是一个屏幕抓取问题。我想直接屏蔽数据库。)

2 个答案:

答案 0 :(得分:1)

您可以使用称为“脚本标记注入”的技术来解决跨域限制。也就是说,您可以操纵文档以插入< script>带有“src”属性的标记,指向异地域,以及您希望传递的任何查询字符串参数。

<script src="http://www.mysite.com/someScript?param=value"></script>

当您将如上所示的标记注入到文档中时,浏览器将点击该URL以检索可能存在的内容;你可以利用“someScript”中的机会来保存传递的值,或者你想做的其他任何事情。

幸运的是,你不是第一个遇到这个问题的人,而且很多艰苦的工作已经完成了。看一下jQuery的$.ajax()方法,该方法内置了对JSONP的支持。这将使您轻松利用该技术。

答案 1 :(得分:0)

如果您从后台页面(而非内容脚本)运行ajax调用并在清单文件中声明相应的域权限,则可以避免跨域限制。