не может получить доступ к простому контроллеру как webService - PullRequest
2 голосов
/ 05 марта 2012

Во время отладки я убедился, что этот js func называется:

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

  • секунда в начале веб-метода. Я вижу, что нить никогда не достигает там.

1 Ответ

0 голосов
/ 06 марта 2012

Elad,

Мне удалось воспроизвести ваш код в значительной степени построчно, и он работает. Итак, давайте проанализируем проблему.

Вы не получаете 404 (не найдено, или 403 (запрос отклонен) ... Вы получаете ошибку 500, что означает, что приложение где-то сломалось.

Итак, я бы начал исследовать некоторые из этих пунктов:

  • Ваш контроллер наследует от базового класса? Не удалось выполнить шаг инициализации?
  • Поставьте точку останова ВНУТРИ вашего сервисного вызова. Может быть, VS ведет себя плохо и не останавливается на действии, как следует.

Если вы ничего не найдете, я бы попробовал следующее, чтобы изолировать проблему:

  • Ударить с помощью Fiddler
  • Упростите вызов js, чтобы увидеть, можете ли вы выполнить действие (например, опубликовать без данных)
  • Включите тип данных в ваш вызов ajax (хотя у меня и без него работал)

Это должно быть хорошим началом, надеюсь, это поможет,

-covo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...