2011-10-22 67 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字符。