我对自己遇到的麻烦完全感到困惑。
我有一个托管在 IIS 中的网站(处于测试阶段,所以一切都通过 localhost)
IIS 7.5
在我的主页(用 HTML 编写)中,我使用 PHP 脚本($.post 方法)与 WCF 服务通信以验证用户身份(完美运行)。
我还有一个注册页面,它使用不同的 php 脚本与同一个 WCF Web 服务进行通信。但是,当我尝试使用 $.post 方法时,我收到 HTTP 405 错误。让我感到沮丧的是,我不明白它如何在一页上完美运行,而在另一页上抱怨?
我在我的主页上调用我的 $.post 方法,如下所示:
$.post('authenticate.php', $("#frmLogin").serialize(), function(data) {
//do stuff
});
没问题。
在不同的 html 页面上调用不同的 php 脚本的相同方法:
$.post('registration.php', $("#frmRegister").serialize(), function(data) {
//do stuff
});
我收到 HTTP 405 错误 - 方法不允许。
什么可能是罪魁祸首?我已将 .php 添加到 IIS 处理程序映射中,并且我允许所有动词但同样的问题。我已经尝试将我的 WCF 方法更改为“POST”而不是“GET”(我的身份验证使用 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;
?>
谢谢,