2011-11-08 89 views
3

我正在嘗試爲Opera編寫我的第一個擴展。它的快速延伸。 我希望它向我展示一些來自網站的數據,但要訪問這些數據我需要登錄。如何在opera擴展中共享cookie?

我已登錄,並且歌劇知道它;-)(當我在Opera的地址中鍵入網站的地址時酒吧,那麼一切正常)。我想讓歌劇告訴JS,我登錄;-)

但是,當我試圖在js中獲得該網站,我得到的文字,說,我需要先登錄:

r_xmlhttp.open("GET",url,true); 
    //r_xmlhttp.withCredentials = 'true'; //even with that on, nothing changes. 
    r_xmlhttp.onreadystatechange = user_func; 
    r_xmlhttp.send(); 

我的config.xml(that`s一個從教程;-),添加ACCES起源和特性歌劇:股餅乾:

<?xml version="1.0" encoding="utf-8"?> 
    <widget xmlns="http://www.w3.org/ns/widgets" id="http://example.com/SimpleClockSD" defaultlocale="en" viewmodes="minimized"> 
    <name short="Simple Clock">Clock Speed Dial Extension</name> 
    <description>This is an example Speed Dial extension showing a simple clock.</description> 
    <author href="http://people.opera.com/danield/">Daniel Davis</author> 
    <icon src="images/icon_64.png"/> <!-- Icon source: http://www.openclipart.org/detail/17552 --> 
    <feature name="opera:share-cookies" required="false"/> 
    <access origin="http://wykop.pl" subdomains="true"/> 
    <feature name="opera:speeddial" required="false"> 
    <param name="url" value="http://wykop.pl"/> 
    </feature> 
    </widget> 

我擡頭一看是怎麼回事使用Wireshark,我可以告訴大家,歌劇發送其他餅乾比JS,這就是爲什麼JS說我沒有登錄。但我想JS發送相同的cookie是歌劇發送,理論上它應該這樣做,因爲我添加了名爲「opera:share-cookies」的功能,對吧?

我該怎麼做?

回答

1

應該工作,但是,對於最初的開發,嘗試設置訪問起源*,然後嘗試。此外,請儘量關注訪問來源(www和沒有www的域名)。現在,嘗試將訪問原點設置爲*,並查看它是否有效。 (在製作中,版主可能不會允許版主使用)。

0

有同樣的問題,你的擴展很可能工作,但由於某種原因,不在開發人員模式。當你壓縮它,重命名爲.oex並作爲正常的擴展名安裝,它可能會工作。