将jQuery请求转换为Axios

时间:2017-04-03 19:48:03

标签: javascript jquery axios

我有一个用jQuery编写的应用程序。我试图让它现代化。作为其中的一部分,我试图将jQuery请求转换为Axios。我的jQuery请求如下所示:

var myUrl = '[someUrl]';
var myData = {
  firstName: 'Joe',
  lastName: 'Smith'
};

$.ajax({
  type: 'POST', url: myUrl, cache: 'false',
  contentType:'application/json',
  headers: {
    'Content-Type': 'application/json',
    'key': '12345'
  },
  data: JSON.stringify(myData),
  success: onSearchSuccess,
  error: onSearchFailure,
  complete: onSearchComplete
}); 

现在,凭借我的现代代码,我有以下内容:

var myUrl = '[someUrl]';
var myData = {
  firstName: 'Joe',
  lastName: 'Smith'
};
axios.post(myUrl, myData)
  .then(function (response) {
    alert('yeah!');
    console.log(response);
  })
  .catch(function (error) {
    alert('oops');
    console.log(error);
  })
;

我不确定如何传入标题或者我需要将myData字符串化。有人可以指点我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

你试过manual吗? :)

这就是你需要的:

  

axios.post(url [,data [,config]])

将其转换为代码的方式是:

var myUrl = '[someUrl]';
var myData = {
  firstName: 'Joe',
  lastName: 'Smith'
};
axios.post(myUrl, myData, {
    headers: {
      'Content-Type': 'application/json',
      'key': '12345'
    }
    // other configuration there
  })
  .then(function (response) {
    alert('yeah!');
    console.log(response);
  })
  .catch(function (error) {
    alert('oops');
    console.log(error);
  })
;

返回的对象实现A+ Promise API。根据您的配置,您可能需要对其进行填充,但npm registry中有许多可用的包。