无法将简单控制器访问为webService
本文关键字:访问 webService 控制器 简单 | 更新日期: 2023-09-27 18:26:55
调试时,我验证了这个js函数被调用:
var oAuthManager = {
loginWithGoogle_OnClick: function () {
createAjaxRequest("Register/GetAuthorizeRequestToken", {
'providerType': 'google'}).done(function (res) { });
// createAjaxRequest("Register", null).done(function (res) { });
}
};
它调用:
function createAjaxRequest(url,data) {
return $.ajax(
{
type: "POST",
url: url,
data: data
});
};
那么,为什么我不能使用RegisterController的方法呢?
[HttpPost] ''tried with and without this
public void GetAuthorizeRequestToken(string providerType)
{
var authType = (OAuthProviderTypes)Enum.Parse(typeof(OAuthProviderTypes), providerType);
mAuthorizationService.GetAuthorizeRequestToken(authType);
}
其他控制器与其他js配合良好。
我得到错误:
POST http://localhost:8976/Register/GetAuthorizeRequestToken 500 (Internal Server Error)
我有两个断点:
一个在ctor中,停止OK
webMethod开头的第二个。我看到那根线永远不会到达那里。
Elad,
我能够一行一行地复制你的代码,并且正在工作。所以让我们来分析一下这个问题。
您没有得到404(未找到)或403(请求被拒绝)。。。您得到一个500的错误,这意味着应用程序在某个地方坏了。
因此,我将开始调查其中的一些要点:
- 您的控制器是否继承自基类?初始化步骤是否失败
- 在您的服务电话中设置一个断点。也许VS的表现很糟糕,没有按照应该的方式停止行动
如果你一无所获,我也会尝试以下方法来隔离问题:
- 用Fiddler击球
- 让js调用更简单,看看你是否能达到动作(例如,在没有数据的情况下发布)
- 在ajax调用中包含一个数据类型(不过在没有它的情况下对我有用)
这应该是一个好的开始,我希望它能有所帮助,
-covo