fetch和ajax的區別

Ajax

利用的是XMLHttpRequest對象來請求數據的。
關於ajax https://segmentfault.com/a/11...ajax

fetch

window的一個方法 主要特色是
一、第一個參數是URL
二、第二個參數可選參數 能夠控制不一樣的init對象
三、使用了js 中的promise對象json

fetch(url).then(function (response) {
    return response.json()   //執行成功第一步
}).then(function (returnedValue) {
    //執行成功的第二步
}).catch(function (err) {
    //中途的任何地方出錯  都會在這裏被捕獲到
})

注意:
fetch 的第二參數中
一、默認的請求爲get請求 能夠使用method:post 來進行配置
二、第一步中的 response有許多方法 json() text() formData()
三、Fetch跨域的時候默認不會帶cookie 須要手動的指定 credentials:'include'segmentfault

使用fetch以後獲得的是一個promise對象 在這個promise對象裏邊再定義執行成功的時候是什麼。下面是正確的fetch的使用方法跨域

var promise=fetch('http://localhost:3000/news', {
        method: 'get'
    }).then(function(response) {
             return  response.json()
    }).catch(function(err) {
        // Error :(
    });
    promise.then(function (data) {
          console.log(data)
    }).catch(function (error) {
        console.log(error)
    })

fetch和ajax 的主要區別

一、fetch()返回的promise將不會拒絕http的錯誤狀態,即便響應是一個HTTP 404或者500
二、在默認狀況下 fetch不會接受或者發送cookiespromise

使用fetch開發項目的時候的問題

一、全部的IE瀏覽器都不會支持 fetch()方法
二、服務器端返回 狀態碼 400 500的時候 不會reject瀏覽器

相關文章
相關標籤/搜索