0

だから私はHTML5キャンバスで実行されている小さなjsプログラムを持っていて、私のjsに小さなhttp get request関数があります。関数自体は機能します(インターネット上のかなりの数の例でテストし、機能しました)が、リクエストが送信されたときに自分のWebサーバーが正しいものを返しません。

私のPHPは次のよ​​うになります:

<?php echo VVV::getUser()->userID ?>

ブラウザで開くと、getUser()->userID が返す正しい値が返されます。ただし、js から Http リクエストを送信すると空の結果が返されますが、インターネットのさまざまなテスト ページで使用すると機能するため、この問題の原因は PHP またはサーバーにあるはずです。何か案は?

4

2 に答える 2

0

これは、クロスドメインAJAXリクエストの問題のように聞こえます。これを解決するには、実際には2つのオプションしかありません。

  • PHPにクロスドメインリクエストを行わせます。したがって、AJAXを使用するサイトはすべて、独自のサーバーにリクエストを送信し(独自のajax.phpスクリプトなど)、サーバーにリクエストを送信してからクライアントに返します。

  • クロスドメインAJAXリクエストにeasyXDMJavaScriptライブラリのようなものを使用してみて、それが役立つかどうかを確認してください。

于 2012-04-17T11:28:28.203 に答える
0

以下は、単純なクロスドメイン リクエスト (JSONP スタイル) の小さなサンプルです。

1) サーバー側で、応答を次のように変更します。

<?php echo( 'callbackFunc(' . VVV::getUser()->userID . ');' ) ?>

2) クライアント側で次のようにします。

function callbackFunc( userId )
{
    // Do something with the userId
}

// Create a script tag which will load the call to the callback function
// with the user ID generated by the PHP code.

var s = document.createElement( "SCRIPT" );
s.src = "http://yourserver/yourpath/yourscript.php?maybesome=params";
document.body.appendChild( s );

サーバーからロードされたコードは、ユーザー ID を使用して callbackFunc() を呼び出します。

于 2012-04-17T11:54:19.180 に答える