亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript ajax 調用有道翻譯api?

JavaScript ajax 調用有道翻譯api?

慕標琳琳 2019-02-05 17:46:33
ajax調用有道翻譯api的時候控制臺返回的信息如下:點開url后的json:ajax代碼:$.ajax({    url: 'http://openapi.youdao.com/api',    type: 'get',    dataType: 'jsonp',    data: {        q: query,        appKey: appKey,        salt: salt,        from: from,        to: to,        sign: sign    },    success: function (data) {        document.write(data.basic.explains);    } });為什么這個data.basic.explains輸出不到前端?這樣算是調用成功了么== 這段代碼是百度翻譯api JavaScript的示例代碼改的。小白還不太懂這是什么原因。
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

首先,建議不要使用 success,改用 jQuery Promise 的 .done() 回調,舉例


$.ajax(settings)

    .done(function(data) {

        document.write(data.basic.explains);

    });

然后,JSONP 方式需要指定一些 JSONP 的參數,具體如何指定要看 API 提供方如何調用回調函數,相關參數名稱是 jsonp 和 jsonpCallback,可以在jQuery Ajax 文檔中找到詳細說明。


但是一般提供 API 的可能都是以 JSON 或者 XML 或者 Plain 方式提供,很少會以 JSONP 方式提供的,這一點建議你去看看有道 SDK 的說明。


最后就是你不知道調用是否成功,可以對 ajax 返回的 jqXHR(Promise) 使用 .done() 回調和 .fail() 來回添加一些日志來觀察,比如


$.ajax(settings)

    .done(function(data) {

        document.write(data.basic.explains);

    })

    .done(function(data) {

        console.log("got data:", data);

    })

    .fail(function() {

        console.log("error:", arguments);

    });

這樣可以在控制臺看到調用結果是否成功,以及成功獲得的數據和失敗相關的信息。


查看完整回答
反對 回復 2019-02-13
  • 1 回答
  • 0 關注
  • 627 瀏覽
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號