1. 程式人生 > >呼叫百度翻譯介面demo(完整ajax請求)

呼叫百度翻譯介面demo(完整ajax請求)


           
//線上翻譯查詢(百度翻譯)
    $('#selectBtn').click(function() {
        var appid = '你申請的appid';
        var key = '你申請的key';
        var salt = (new Date).getTime();//取當前時間作為隨機數
        var query= $('#transInput').val();//取輸入框的val
        var q = encodeURIComponent(query);//編碼UTF-8
        var from = $('#languageLeft').attr('data-language');//原文
        var to = $('#languageRight').attr('data-language');//譯文
        var str1 = appid + query + salt +key;//祕鑰
        var sign = MD5(str1);//md5加密
        $.ajax({
            url: 'http://api.fanyi.baidu.com/api/trans/vip/translate',
            type: 'get',
            dataType: 'jsonp',
            data: {
                q: query,
                appid: appid,
                salt: salt,
                from: 'auto',
                to: 'auto',
                sign: sign
            },
            success: function (data) {
                console.log(data);
                var result = data.trans_result;
                $('#transDisplay').empty();
                for(var i in result){
                    var html = '<p>'+decodeURIComponent(result[i].dst)+'</p>';
                    $('#transDisplay').append(html);
                }
            } 
        });
    });

官網給了測試的appid和key

var appid = '2015063000000001';
var key = '12345678';

還要下載一個md5檔案,大家可以到官網去點選demo下載,裡面包含了MD5檔案。

上面的from和to我是設定的auto,自動識別語言。如果要自己傳的話,可以參照上面我設定的變數from、to。我在html標籤上設定了data-language屬性來儲存語言編碼。

這裡有個問題要注意,你要翻譯的文字在ajax傳輸的時候要encode轉碼,而生成祕鑰的時候這塊則是不需要轉碼的。大家切記。