【问题标题】:jQuery ajaxSetup with ES6使用 ES6 的 jQuery ajaxSetup
【发布时间】:2018-09-17 11:07:04
【问题描述】:

如何使用 vanilla JS(在本例中为 ES6)复制 jQuery 的 ajaxSetup 的行为?

这就是我想要实现的目标。目前我的 app.js 中有:

$(document).ready(()=>{
    $.ajaxSetup({
        data: {'_token': $('meta[name="csrf-token"]').attr('content')}
    });     
 })

因此,当我在任何其他文件中执行任何 ajax 请求时,_token 将包含在我提供的数据 json 对象中,这样我就不必在每次调用时都指定 _token 以确保它永远不会错过。

如何仅使用 ES6 做到这一点?

【问题讨论】:

  • 你只说 ES6 到底是什么意思?没有 jQuery?
  • @E.Sundin 是的,先生,没有 jQuery。

标签: javascript jquery ajax ecmascript-6


【解决方案1】:

包装 Fetch api 并存储您的基础数据并将其与您发送的任何内容合并。

class MyFetch {
  constructor(data) {
    this.data = data
  }

  post(url, data) {
    let requestData = {
      ...this.data,
      ...data
    }
    return fetch(url, {
      method: 'POST',
      body: JSON.stringify(requestData)
    })
  }
}

let myFetch = new MyFetch({
  _token: 'helloworld'
})

myFetch.post('https://httpbin.org/post',{moreData:'more'})
  .then((res) => res.json())
  .then(json => {
    console.log('Data sent:', json.data)
  })

【讨论】:

  • 为什么这需要是一个类?为什么不只是一个函数?
  • @jfriend00 保存设置数据
猜你喜欢
  • 2011-08-23
  • 2015-10-21
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 2022-01-03
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多