Как я могу «поделиться куки» в расширениях оперы? - PullRequest
3 голосов
/ 08 ноября 2011

Я пытаюсь написать свое первое расширение для Opera.Его расширение для ускоренного набора.Я хочу, чтобы он показывал мне некоторые данные с веб-сайта, но для доступа к этим данным мне нужно войти в систему.

Я вошел в систему, и опера знает это ;-) (Когда я набираю адрес веб-сайта в Operaадресная строка, тогда все работает просто отлично.) И я хочу, чтобы 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 (это из учебника ;-), добавлен источник доступа и функция opera: share-cookies:

    <?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, и могу сказать, что Opera отправляет файлы cookie, отличные от JS, и поэтому JS говорит, что я не вошел в систему. Но я хочу, чтобы JS отправлял те же файлы cookie, которые отправляет Operaи теоретически это должно быть сделано, потому что я добавил функцию под названием "opera: share-cookies", верно?

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Это должно работать, однако, для начальной разработки, попробуйте установить access-origin как *, а затем попробуйте. Кроме того, постарайтесь быть осторожным с доступом к источнику доступа (www и домен без www). А пока попробуйте установить источник доступа как * и посмотреть, работает он или нет. (В рабочей среде источник доступа *, вероятно, не будет разрешен модераторами).

0 голосов
/ 09 июля 2012

Была такая же проблема, ваше расширение, скорее всего, работает, но по какой-то причине не в режиме разработчика.Когда вы заархивируете его, переименуете в .oex и установите как обычное расширение, оно, вероятно, будет работать.

...