проблема перекрестного просмотра в вызове ajax - PullRequest
0 голосов
/ 12 октября 2010

Когда я выполняю его в Firefox Mozila, этот код работает хорошо (в случае пользователя с регистрацией), но когда мы пробуем его в IE (iternet explorer 8), тогда выдается предупреждение («извините, вы должны сначала войти в систему»); это сообщение приходит. (в обоих случаях как регистр или жест).

Другое дело: для пользователя, возвращающего данные с сервера, значение null. означает d = ноль,

Еще одна вещь, когда выполняется в firefox mozila как пользователь с жестами, тогда ничего не происходит, значит оповещение («извините, вам сначала нужно войти в систему»); это сообщение не приходит.

Что мне делать?

function manageVoting() {
        var parameter;
        var myVoting;
        var divVoting;
        var divVotes;
        var value = -1;
        var parameterData;
        $('div.votemaincontainer').each(function() {
            parameter = $(this).find('#[id$= hfUrl]').val();
            myVoting = parseInt($(this).find('#[id$=hfMyVote]').val());
            divVoting = $(this).find('[id$=divVoting]');
            divVotes = $(this).find('[id$=divVotes]');

            function processVote(value) {
                if (value == 0 || value == 1) {
                    parameterData = parameter + value + "'}";

                    $.ajax({
                        type: 'POST',
                        url: 'UserControls/Vote/VoteAction.aspx/Voting',
                        data: parameterData,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(data) {
                            var result = eval(data.d);

                            if (result) {
                                if (result.length > 1) {
                                    if (result[1] == 1 && result[2] == 1) {
                                        $('img.voteupImage').attr('src', 'UserControls/Vote/Images/aftervote_arrow_up.png');
                                        $('img.votedownImage').attr('src', 'UserControls/Vote/Images/arrow_down.png');
                                        $('div.divVotes').html(result[0]);
                                        $(myVoting).val(value);
                                    }
                                    else if (result[1] == 0 && result[2] == 1) {
                                        $('img.voteupImage').attr('src', 'UserControls/Vote/Images/Arrow Up.png');
                                        $('img.votedownImage').attr('src', 'UserControls/Vote/Images/aftervote_down.png');
                                        $('div.divVotes').html(result[0]);
                                        $(myVoting).val(value);
                                    }
                                    else if (result[2] < 0 && value == 0) {
                                        alert('U HAVE ALL READY VOTED DOWN');
                                    }
                                    else {
                                        alert('U HAVE ALL READY VOTED UP');
                                    }
                                    $('#[id$=hfMyVote]').html(result[1]);
                                }
                                else {
                                    alert('I AM ENSIDE ELSE');
                                    //$('div.divVotes').html(result[0] - 1);
                                    alertDialog("Rating any knowledge item is only available for Registered User.<br>Do you want to <a class='signUpPopUp' href='signup.aspx'> signup</a> Now?");
                                }

                            }
                        },
                        error: function() {
                            alert("sorry u must have to login first");

                        }
                    });
                }
            }

            $('img.voteupImage').live('click', function() {

                value = 1;
                processVote(value);

            });
            $('img.votedownImage').live('click', function() {

                value = 0;
                processVote(value);

            });
        });
    }

    $(function() {
        manageVoting();
    });

1 Ответ

0 голосов
/ 12 октября 2010

Успешность вызова Ajax не зависит от аутентифицируемого пользователя. Сервер http должен вернуть код 403, если пользователь не прошел проверку подлинности, и 200, если все в порядке.

success(data, textStatus, XMLHttpRequest){
    if (XMLHttpRequest.status == 403){
        alert("sorry u must have to login first");
        return;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...