开发者

How to work with HTTPS request in JQuery

I am using JQuery ajax for authenticating username and password, however due to security reason I need to call HTTPS request.

Below is my JQuery Code: where I need to implement the HTTPS call.

 //Submitting the form
$("#loginDetails > form").submit(function()
{  
    //Hiding the Login button
    $("#loginButton").hide();

    //Showing the ajax loading image
    $("#ajaxloading").show();

    // 'this' refers to the current submitted form  
    var str = $(this).serialize();   
    // -- Start AJAX Call --

    $.ajax({  
        type: "POST",
        url: "Login.aspx",  // Send the login info to this page
        data: str,  
        success: function(result)
        {  

            $("#loginDetails").ajaxComplete(function(event, request, settings)
            {  

             // Show 'Submit' Button
            $('#loginButton').show();

            // Hide Gif Spinning Rotator
            $('#ajaxloading').hide();  

            var resLength = result.trim().length;

            if(resLength!=0)
            {
                var arr = result.split(",");
                var fname = arr[0];
                var lname = arr[1];
                var activeCardNo = arr[2];
                var multipleTier = arr[3];
                var activeStatus = arr[4];
                var access = arr[5];

                 if(access!='' && access!='undefined') // LOGIN OK?
                 { 
                     $('.validateTips').hide();
                    var login_response = '<div id="logged_in">' +
                     '<div style="width: 350px; float: left; margin-left: 80px;">' + 
                     '<div style="width: 40px; float: left;">' +
                     '<img style="margin: 22px 0px 10px 0px;" align="absmiddle" src="system/images/ajax-loader.gif">' +
                     '</div>' +
                     '<div style="margin: 24px 0px 0px 10px; float: right; width: 300px;">'+ 
                     "You are successfully logged in! <br /> Please wait while you're redirected...</div></div>";  

                    $('#loginButton').hide();
                    $('#closeBtn').hide();
                    $('#divMember').text(fname +' '+ lname);
                    $('#spnSkywardsNo').text(activeCardNo);
                    $('#spnTierStatus').text(multipleTier);
                    $("#ui-dialog-title-skywardsLogin").text(getDataFromResourceFile('pleaseWait'));

                    $('#divSuccessLogin').html(login_response);
                    $('#divSuccessLogin').show();
                    $('#loginDetails').hide();
                    //$(this).html(login_response); // Refers to 'status'

                    // After 3 seconds redirect the 
                    setTimeout(closeDialog, 3000); 

                 }  
              }
            else// ERROR?
             {  
                 var login_response = getDataFromResourceFile('InvalidUsername');
                 $('.validateTips').html(login_response);
             }

     });  

     }  

    });  

    // -- End AJAX Call --

    return false; 
});  

The above code works perfect, but due to security issues, I need to change my call call to HTTPS, so my ajax call w开发者_StackOverflowill not be "Login.aspx" it will be "https://login.aspx"

Please suggest how to achieve this, so that my security is maintained and there will not be any security conflict.


This will happen by default if the page is https://, this has to be the case...you can't make an AJAX request from an http:// page to an https:// destination, and vice-versa. When you try this, it's seen as a different protocol, and in violating of the same origin policy, so you'll be prevented from seeing the response.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜