私は自分が抱えている問題に完全に困惑しています。
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;
?>
ありがとう、