0

私は、2 つのプラットフォーム (Android と IOS) をサポートする Phonegap プロジェクトです。

すべてのサーバー要求に対して、認証ヘッダーを設定する必要があります。このヘッダーは、応答を受信するためにエンコードされた base64 UTF-16LE 形式である必要があります。

jquery base-64 プラグインを使用して base64 にエンコードできます。

var base64Enc=$.base64.encode("Surya@gmail.com"+":"+"Password01");

これは問題なく動作しますが、これを UTF-16LE に変換する必要があり、これをリクエストの認証ヘッダーとして設定する必要があります。

beforeSend: function(xhr){
             xhr.setRequestHeader("Content-Type", "application/json");
             xhr.setRequestHeader("Authorization", "Basic " + base64Enc);
        },

base64Enc を UTF-16LE に変換するにはどうすればよいですか。Javaでは、次を使用して同じことができますnew String(Base64.encodeBase64("Surya@gmail.com:Password01".getBytes("UTF-16LE")))

JavaScript/jqueryでこれを行う方法を教えてください。Jqueryにはこのカバーを行うためのプラグインがありますか、またはこれを達成するためにユーティリティを使用する必要がありますか?

これについて私を助けてください。事前に感謝します。

4

1 に答える 1

0

10 未満の IE をサポートする必要がないという前提で、ネイティブの ECMAScript を使用します。

window.atob()12を使用window.btoa()

以来:

DOMStrings は 16 ビットでエンコードされた文字列です3

/* Base64 Encode */ 
var base64Enc = window.btoa("Surya@gmail.com"+":"+"Password01");

/* Base64 Decode (as UTF16 DOMString) */
var utf16Dec = window.atob(base64Enc);

1 https://developer.mozilla.org/en-US/docs/Web/API/window.atob

2 https://developer.mozilla.org/en-US/docs/Web/API/window.btoa

3 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding

于 2013-10-22T15:06:22.243 に答える