1

私はホスティングWebページに含まれるウィジェット(PHPとjQueryを使用)を作成していますが、実際には、以下で説明するこれら2つの問題のために行き詰まっています。

  1. 私のウィジェットには、データを取得するためにphpスクリプトへのAJAX呼び出しを実行することになっているコマンドがありますが、常にaccess-Control-Allow-Originエラーが発生しました。最初は、この行をphp:header( "Access -Control-Allow-Origin:* "); しかし、これまではFirefoxでのみ機能しており、Chromeはまだphp出力を提供することを拒否しています

  2. 常にAJAX呼び出しについて話します。ユーザーはこれらの呼び出しを呼び出す選択を実行します。ユーザーの選択を追跡したいと思います。PHPでセッションを使うことを考えました。ここでの問題は、呼び出しが異なるsession_idを持っているように見えることです...何か考えはありますか?

前もって感謝します

4

3 に答える 3

2
  1. JSONPを見てください
  2. JavaScript からユーザー ID を生成 (おそらく取得?) し、それをリクエストと一緒に送信できます。

問題#2の説明:PHPセッションはCookieとGETパラメーターで機能します。PHP はセッション ID を生成し、それを Cookie または GET 文字列に配置します。次に、リクエストが戻ってくると、Cookie (GET パラメータ) を読み取り、取得するセッションを認識します。あなたの場合、元のページ (ドメインではない) から Cookie を取得するため、(サーバーに属する) セッション ID はなく、サーバーは新しいものを生成する以外に何もしません。

オプションとして、ウィジェットを埋め込むことを検討できます。これにより、iframe同じオリジンやセッション処理を含むすべての問題が解決されます。

于 2012-09-03T16:40:28.250 に答える
1

jQuery / JavaScriptで純粋なAJAXを使用するには、リクエストとともにCookieを生成する方法を検討することをお勧めします。Cookieは、リクエストが行われるときに送信されるヘッダーの一部として追加されるだけです。必要なのは、現在のユーザーのセッションCookieを、行われているAJAXリクエストに注入して、ユーザーが引き続き同じと見なされるようにすることです。ウィジェットがバックグラウンドで他のスクリプトに対して行うリクエストごとのユーザー。これらのタイプのリクエストにjQuery/JavaScriptを使用してからしばらく経ちましたが、リクエストを送信する前にヘッダーをリクエストに追加する方法があると思います。ヘッダー用に生のCookieを作成する必要があるかもしれませんが、単純なGoogle検索で必要な形式が明らかになるはずです。

于 2012-12-16T15:17:38.160 に答える
0

同じ問題を抱えている誰かを助けるために、私の質問に答えたいと思います.

ウィジェットを実現するために Javascript/Jquery を使用する必要がない場合は、ウィジェットを Adob​​e Flash SWF アプリケーションとして実現すると、上記の問題がすべて解決されることがわかりました。

AS3 を使用すると、php ファイルへのリモート Http リクエストを実行できます。また、すべてのリクエストは単一のセッションとして追跡されます。また、Access-Control-Allow-Origin には問題はありません。

domainhost.com はタグ domain1.com/widgetflash.php にロードでき、ページ内のロードされた widget.swf は次のようなリモート リクエストを実行できます。

urlRequest= new URLRequest("http://www.example.com/source/setChoice.php");
_urlLoader = new URLLoader(); 
_urlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded, false, 0, true);
_urlLoader.load(urlRequest);
于 2012-09-04T13:59:30.447 に答える