0

私は自分が抱えている問題に完全に困惑しています。

IIS でホストされている Web サイトがあります (テスト段階なので、すべてが localhost 経由です)

IIS7.5

私のホームページ (HTML で記述) では、PHP スクリプト ($.post メソッド) を使用して WCF サービスと通信し、ユーザーを認証しています (完全に機能します)。

別のphpスクリプトを使用して同じWCF Webサービスと通信する登録ページもあります。しかし、$.post メソッドを使用しようとすると、HTTP 405 エラーが発生します。私を殺しているのは、あるページでは完璧に機能し、別のページでは文句を言うことができないということですか?

次のように、ホームページで $.post メソッドを呼び出しています。

 $.post('authenticate.php', $("#frmLogin").serialize(), function(data) {
                        //do stuff  
                }); 

問題はありません。

別の php スクリプトを呼び出す別の html ページの同じメソッド:

 $.post('registration.php', $("#frmRegister").serialize(), function(data) {
                            //do stuff
                    });

HTTP 405 エラーが発生します - メソッドは許可されていません。

何が犯人である可能性がありますか?IIS ハンドラー マッピングに .php を追加しました。すべての動詞を許可しますが、問題は同じです。WCF メソッドを「GET」ではなく「POST」に変更しようとしましたが (認証は GET を使用して動作します)、まだ問題があります。

アップデート:

registration.php ファイルの php コードは次のとおりです。

         <?php


    $UserName = $_POST['UserName'];
    $PassWord = $_POST['PassWord'];
    $Email = $_POST['Email'];


    $wcfClient = new SoapClient('http://localhost/AYAFYAuthenticate/AuthenticationService.svc?wsdl');

    $args = array('uname' => $UserName,'pword' => $PassWord,'email' => $Email);

    $response = $wcfClient->CreateUser($args);

    echo $response->CreateUserResult;
    ?>

動作する authentication.php ファイルは次のとおりです。

         <?php


    $UserName = $_POST['UserName'];
    $PassWord = $_POST['PassWord'];


    $wcfClient = new SoapClient('http://localhost/AYAFYAuthenticate/AuthenticationService.svc?wsdl');

    $args = array('uname' => $UserName,'pword' => $PassWord);

    $response = $wcfClient->Authenticate($args);

    echo $response->AuthenticateResult;
    ?>

ありがとう、

4

1 に答える 1

0

http://www.checkupdown.com/status/E405.htmlは、405 エラーを修正する方法を示しています。そこを読んで、サーバー側の何かだと思います。PHPを載せていただけると助かります

于 2012-08-13T02:47:42.983 に答える