zoukankan      html  css  js  c++  java
  • 基于Promise对象的新一代Ajax API--fetch

     1 *****************************************************************
     2 #fetch Request 使用isomorphic-fetch发送fetch请求
     3 
     4 import fetch from 'isomorphic-fetch';  //ES6中为window原生方法
     5 
     6 fetch(url,{
     7     method: "POST",
     8       headers: {"Content-Type":"application/x-www-form-urlencoded"}, 9       body: "firstName=Nikhil&favColor=blue&password=easytoguess"
    10 }).then(function(response) {
    11     if (response.status >= 400) {  //判断请求是否成功
    12         throw new Error("Bad response from server!");
    13     }
    14     //response.headers.get('Content-Type')
    15     //response.headers.get('Date')
    16     //response.status
    17     //response.statusText
    18     //response.type
    19     //response.url
    20 
    21     return response.json();  //将Promise对象转成json对象
    22     //.text():返回字符串
    23     //.json():返回一个JSON对象
    24     //.formData():返回一个FormData对象
    25     //.blob():返回一个blob对象
    26     //.arrayBuffer():返回一个二进制数组
    27 }).then(function(json) {
    28     console.log(json);  //执行你的代码
    29 }).catch(function(ex) {
    30     console.log('request failed', ex);  //异常处理
    31 });
    32 *****************************************************************
    33 
    34 *****************************************************************
    35 #JSONP Request 使用fetch-jsonp发送jsonp请求
    36 
    37 import fetchJsonp from 'fetch-jsonp';
    38 
    39 fetchJsonp(url,{
    40     jsonp:'callback',  //可不设置,默认生成为callback
    41     jsonpCallback:'myCallback',  //可不设置,默认生成随机名称
    42     timeout:3000,  //可不设置,默认5000
    43     data:{a:1},  //参数  最后生成url?a=1&callback=myCallback的请求
    44 }).then(function(response) {
    45     return response.json();  //接受结果为Promise对象,转成json对象
    46 }).then(function(json) {
    47     console.log(json);  //执行你需要的代码
    48 }).catch(function(ex) {
    49     console.log('parsing failed', ex);  //异常处理
    50 })
    51 
    52 !!!jsonp返回的数据不能是纯json,而是"函数名(json)"的js代码
    53 *****************************************************************
  • 相关阅读:
    python中装饰器的原理
    python中封装、继承、多态
    Linux 中数组的使用
    Linux中环境变量中文件执行顺序
    Linux中FTP的一点理解
    原来... 拷贝构造函数的参数为什么必须使用引用类型
    C++ Programming language读书笔记
    linux 用户态 内核态
    Linux命令学习整理。
    fork &vfork --陈皓
  • 原文地址:https://www.cnblogs.com/guanghe/p/6789606.html
Copyright © 2011-2022 走看看