fetch
|
|
poiyfill
fetch是基于Promise设计的,所以不兼容 IE8及以下
可以下载 isomorphic-fetch和whatwg-fetch
jsonp
fetch不支持jsonp
可以用 fetch-jsonp
npm install fetch-jsonp --save-dev
fetchJsonp('/users.jsonp', {
timeout: 3000,
jsonpCallback: 'custom_callback'
})
.then(function(response) {
return response.json()
}).catch(function(ex) {
console.log('parsing failed', ex)
})
跨域
fetch的mode有3个值
same=>该模式是不允许跨域的,它需要遵守同源策略,否则浏览器会返回一个error告知不能跨域;其对应的response type为basic。
cors: 该模式支持跨域请求,顾名思义它是以CORS的形式跨域;当然该模式也可以同域请求不需要后端额外的CORS支持;其对应的response type为cors。
no-cors: 该模式用于跨域请求但是服务器不带CORS响应头,也就是服务端不支持CORS;这也是fetch的特殊跨域请求方式;其对应的response type为opaque。
// 后台可以看到数据,但是访问不到内容 => 该模式允许浏览器发送本次跨域请求,但是不能访问响应返回的内容,这也是其response type为opaque透明的原因。
proxy 重定向
可以 在package.json里添加
"proxy": {
"/api": {
"target": "http://localhost:4000",
"secure": false
}
}