0

ユーザーが入力したユーザー名をサーバー上のphpスクリプトに送信することになっているjavascriptページがあります。javascript ページはhttp://192.168.1.4/login.htmlから取得され、 http://192.168.1.4/GetInfo.phpで php スクリプトにアクセスしようとします。Firefox の同一オリジン ポリシーにより、javascript ページから php スクリプトのユーザー名にアクセスできないと思いますが、この疑惑を確認する方法がわかりませんので、間違っていたらご容赦ください。私は、javascript と php を学び始めたばかりです。この情報を渡す別の方法があるかどうか疑問に思っていました。コードは以下のとおりです。ありがとう!

ジャバスクリプト:

<html>
    <head>
        <title>Login Page for SplitAuth</title>
    </head>
    <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
    <script language="Javascript">
        function getUsername()
        {
            var username = window.prompt('Please Type Your Username');
            var temp = document.getElementById('temp');
            temp.innerHTML = username;
            jQuery.ajax(
                {
                    type: "POST",
                    url:"GetInfo.php",
                    data: username,
                    success: function(msg)
                            {alert("data Saved: "+msg);}

                });//ends the jQuery send

        }//ends the GetUsername function
    </script>
    <body onLoad=getUsername()>
        <div id="temp">This will show text</div>
    <body>

</html>

PHP スクリプト:

<?
$inFile="MyID.config.php";
$handle=fopen($inFile, 'r') or die ("No credentials could be gotten because the file MyID.config.php would not open.");

echo $_POST['msg'];

fclose($fh);

?>
4

3 に答える 3

3

data:「msg=」を先頭に追加する必要があります。

...
data: "msg="+username,
...

その理由はjQuery.ajax、クエリ文字列またはオブジェクトを期待しているためです。つまり、

...
data: {msg: username},
...

も機能します。

jQuery.ajax ドキュメントをご覧ください。具体的にはdata-セクション

于 2012-04-20T21:55:55.603 に答える
0

POST メソッドを使用しており、送信しているデータが間違っています。送信するデータを構築する必要があります。ajaxメソッドのjqueryページを見てください。これは、データ属性について述べていることです。

http://api.jquery.com/jQuery.ajax/

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。GET リクエストの URL に追加されます。この自動処理を防ぐには、processData オプションを参照してください。オブジェクトはキーと値のペアである必要があります。valueが Array の場合、jQuery は従来の設定 (以下で説明) の値に基づいて、同じキーで複数の値をシリアル化します。

于 2012-04-20T21:57:59.353 に答える
-1

スクリプトは次のようになります。

 $.ajax({
  type: "POST",
  url: "GetInfo.php",
  data: "{name:"+ username + "}"
  }).done(function( msg ) {
 alert( "Data Saved: " + msg );
 });

そして、あなたのphpスクリプトはユーザー名の値を取得していません. $_POST['msg'] で使用される「msg」は、値がないため、何も警告しません。「msg」変数は、返された値の値を HTML ページに格納するためのものです。www.jquery.comからもっと読むことをお勧めします

于 2012-04-20T22:24:06.620 に答える