3

Opera 用の最初の拡張機能を作成しようとしています。その短縮ダイヤル内線。ウェブサイトのデータを表示したいのですが、これらのデータにアクセスするにはログインする必要があります。

私はログインしており、opera はそれを認識しています ;-) (Opera のアドレス バーに Web サイトのアドレスを入力すると、すべて正常に動作します。) そして、Opera にログインしていることを JS に伝えてもらいたい ;-)

しかし、js でその Web サイトを取得しようとすると、ログインする必要があるというテキストが表示されます。

    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 (これはチュートリアルの 1 つです;-)、accesses origin を追加し、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はJS以外のCookieを送信していることがわかります.JSがログインしていないと言っているのはそのためです. "opera:share-cookies" という機能を追加したので、そうすべきでしょうか?

私は何を間違っていますか?

4

2 に答える 2

1

ただし、最初の開発で、access-origin を * に設定してから試してください。また、アクセス元(www、およびwwwを含まないドメイン)にも注意してください。とりあえず、アクセス元を*に設定して動作するか試してみます。(本番環境では、アクセス元 * はモデレーターによって許可されない可能性があります)。

于 2012-04-03T09:49:14.023 に答える
0

同じ問題が発生した場合、拡張機能は機能している可能性が高いですが、何らかの理由で開発者モードでは機能していません。zip形式で、名前を.oexに変更し、通常の拡張子としてインストールすると、おそらく機能します。

于 2012-07-09T00:34:33.863 に答える