jQuery AJAX Header Authorisation

后端 未结 2 2061
北海茫月
北海茫月 2020-12-31 22:28

I\'m trying to authorise an AJAX query based on this tutorial. It sets the request headers before send with the appropriate authorisation information by using the Crypto lib

相关标签:
2条回答
  • 2020-12-31 23:11

    This finally seems to work for me. There could be collisions on an individual call basis. Sets this method as a default for future connection options.

    //Function( jqXHR jqXHR )
    $.ajaxSetup( {beforeSend: function(jqXHR) {
        jqXHR.setRequestHeader( "My-Header", "My-Value" );
    } } );
    
    0 讨论(0)
  • 2020-12-31 23:19

    The issue was not setting the dataType to JSONP. As this was not done the browser interpreted the call as a standard AJAX request which meant it was being blocked under same-origin-policy.

    Working code for reference (credit goes to @pdeschen for suggesting Crpyto):

    <script type='text/javascript'>
    // define vars
    var username = '';
    var password = '';
    var url = '';
    
    // ajax call
    $.ajax({
        url: url,
        dataType : 'jsonp',
        beforeSend : function(xhr) {
          // generate base 64 string from username + password
          var bytes = Crypto.charenc.Binary.stringToBytes(username + ":" + password);
          var base64 = Crypto.util.bytesToBase64(bytes);
          // set header
          xhr.setRequestHeader("Authorization", "Basic " + base64);
        },
        error : function() {
          // error handler
        },
        success: function(data) {
            // success handler
        }
    });
    </script> 
    
    0 讨论(0)
提交回复
热议问题