获取从url下载的.txt文件的内容

时间:2018-02-19 00:21:43

标签: javascript

我正在搞乱一些看起来像这样的获取请求。

function translate(q) {
  var sourceText = q;
  var sourceLang = 'en';
  var targetLang = 'es';
  var url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" + sourceLang + "&tl=" + targetLang + "&dt=t&q=" + encodeURI(sourceText);
  var result = fetch(url);
  return result;
}

问题是,在访问此URL时,结果是下载的.txt文件,包含JSON。使用Javascript,如何提取此文件的内容并使用JSON?

1 个答案:

答案 0 :(得分:1)

你快到了。 fetch方法返回一个需要解析才能获取数据的promise。使用.then,您可以从获取中获取响应,然后使用.json()方法从服务器的响应中提取JSON。

function translate(q) {
  var sourceText = q;
  var sourceLang = 'en';
  var targetLang = 'es';
  var url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" + sourceLang + "&tl=" + targetLang + "&dt=t&q=" + encodeURI(sourceText);
  var result = fetch(url).then((resp) => {
    return resp.json();
  });
  return result; // As Promise
}

document.getElementById("fetch").addEventListener("click", () => {
  let promise = translate(document.getElementById("source").value);

  promise.then((json) => {
    document.getElementById("result").innerHTML = JSON.stringify(json);
  });
});
<html>

<body>
  <input type="text" id="source"></input>
  <button id="fetch">fetch</button>
  <div id="result"></div>
</body>

</html>