我完全被我遇到麻煩百思不得其解。
我在IIS託管的網站(在測試階段,所以一切都是通過本地主機)
IIS 7.5
在我的主頁(用HTML編寫的),我使用的PHP腳本($。 post方法)與WCF服務進行通信以驗證用戶身份(完美工作)。
我也有一個註冊頁面,與使用不同的PHP腳本相同的WCF的Web服務進行通信。但是,當我嘗試使用$ .post方法時,出現HTTP 405錯誤。什麼讓我害怕,我不明白它如何在一頁上完美工作,並抱怨另一頁?
我打電話給我的$。員額方法在我的主頁是這樣的:
$.post('authenticate.php', $("#frmLogin").serialize(), function(data) {
//do stuff
});
沒有問題。
調用不同的PHP腳本不同的html頁面上相同的方法:
$.post('registration.php', $("#frmRegister").serialize(), function(data) {
//do stuff
});
,我得到HTTP 405錯誤 - 不允許的方法。
怎麼可能是罪魁禍首?我已經添加了.php到IIS處理程序映射,並允許所有動詞但同樣的問題。我試着改變我的WCF方法來「POST」,而不是「GET」(我的身份驗證使用GET工作),但仍然是一個問題。
更新:
這裏的registration.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;
?>
這裏的PHP代碼的The工作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;
?>
感謝,
我更新我的問題與PHP腳本,但我會看着你提供這個鏈接。 – kmauzoul 2012-08-13 03:19:16
試試這個。暫時用您的授權碼替換您的註冊碼,以查看它是否是客戶端。 Idk你的「do stuff」代碼是什麼,如果有代碼的話,但是這個步驟應該測試它的客戶端還是服務器端的問題。我沒有看到任何真正錯誤的PHP的,但我不是一個很大的PHP編碼器開始用,所以我會捅別人看看 – Kpower 2012-08-13 04:51:41