为了账号安全,请及时绑定邮箱和手机立即绑定

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条经验 获得超7个赞

首先,建议不要使用 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 关注
  • 605 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信