HTML5 fetch polyfill from github wrapped and bundled for ember-cli users
ember install ember-fetch
import fetch from 'fetch';
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return fetch('/my-cool-end-point.json').then(function(response) {
return response.json();
});
}
});To have Ember Data utilize fetch instead of jQuery.ajax to make calls to your backend, extend your project's application adapter with the adapter-fetch mixin.
// app/adapters/application.js
import DS from 'ember-data';
import AdapterFetch from 'ember-fetch/mixins/adapter-fetch';
export default DS.RESTAdapter.extend(AdapterFetch, {
...
});This addon provides fetch in fastboot. The default fetch module is node-fetch, which uses node http or https underneath. If your app require different communication protocal on server side. You can disable using node-fetch by setting following config value in ember-cli-build.js to be true. Without setting this value means using node-fetch for server side fetch.
let app = new EmberAddon(defaults, {
'ember-fetch': {
disableDefaultNodeFetch: true
}further docs: https://github.com/github/fetch
- evergreen / IE10+ / Safari 6.1+ https://github.com/github/fetch#browser-support
- ideally yes, but only if you cater to IE9+
- for basic drop-in compat
import ajax from 'ember-fetch/ajax'
- taken care of for you
- original emits a global
- original requires a Promise polyfill (ember users have RSVP)
- original isn't Ember run-loop aware
- we actually don't bundle github/fetch rather we merely wrap/transform what
comes from
node_modules, so we should be resilient to changes assuming semver from the fetch module