Fetch
Kraken 所提供的 Fetch API 兼容 W3C 的协议规范,因此你可以直接将浏览器中的 fetch
调用代码无缝移植到 Kraken 环境中。
在 Kraken 环境中,Fetch API 不仅提供了 fetch
函数,还提供了对 Request
和 Response
的支持。通过这 2 个内置的构造器,可以实现一些比较复杂的功能,比如自定义请求头,处理不同类型的数据返回类型等。
需要注意的是在浏览器中,Fetch 会受到浏览器的同源策略安全限制,但是在 Kraken 并没有提供类似浏览器那样的安全限制,所以你可以使用 Fetch 请求网络上的任何一个 API,但是需要注意的是,一定确保执行 Fetch 的代码是可信任的,否则将会引起安全问题。
在下面的示例中,我们使用 FetchAPI 去发起一个 GET 请求,这个请求会返回一个 JSON 字符串,我们可以通过调用 response 的json()
方法将其转成对象,从供后面的代码使用:
示例:
fetch('http://example.com/demo.json') .then(function(response) { return response.json(); }) .then(function(data) { // This is the object from API. console.log(data); });
fetch
函数的第 2 个参数,可以传入一个对象可以自定义请求时的输入,如发起一个 POST 请求,并发送一段 JSON 字符串到服务端:
const data = { username: 'kraken team',};
fetch('http://example.com/post', { method: 'POST', body: JSON.stringify(data), headers: { 'Content-Type': 'application/json', },}) .then(function(response) { return response.json(); }) .then(function(data) { // Server post response. console.log(data); });