2011-10-22 69 views
0

我正在写一个谷歌浏览器的扩展,我需要绕过同源策略:我可以XMLHTTPRequest();纯HTML(无XML)

var xhr = new XMLHttpRequest(); 

xhr.open("GET", "my url", true); 

不过,“我的网址”是一个HTML页面的URL(更具体地说是JavaScript模板),并从我的控制台收到“Uncaught SyntaxError:Unexpected token <”。

如何接受这个XML使用谷歌浏览器扩展xhr方法的GET(我不能使用.ajax由于相同的来源策略和调用它JSONP不允许HTML解析)?

+1

需要更多细节。 “我的网址”的回应是什么?你的功能的其余部分在哪里? –

+2

是的,尽管XMLHttpRequest是一种AJAX功能,代表异步JavaScript和XML,HTML也是一个完美的好方法。 – comu

+0

答案是“”。这不是一个功能的一部分,我只是试图让它工作。 如果HTML是有效的,为什么它会被第一个“<”绊倒? – user995469

回答

0

您将需要使用jsonp来获取数据。要解析它,不知道你打算如何解析html,但如果该html格式正确,它会更容易,你可以创建一个代理,它将返回格式良好的html或xml。在代理中,您可以使用tidyhtml,它可以采用格式不正确的html并输出html的xml或xhtml格式的数据。否则,你会做很多字符串操作。无论哪种方式,您应该通过jsonp获取您的数据。你可以将它加载到网页的某个html元素中,并通过jquery进行操作。 使用jsonp加载html的问题是,您需要在能够通过回调函数传递它之前转义几个html字符。