Используйте Fly.js для инициирования http-запросов в апплете WeChat.

JavaScript Апплет WeChat
Используйте Fly.js для инициирования http-запросов в апплете WeChat.

Среда выполнения javascript апплета WeChat отличается от среды браузера, а логика скрипта страницы находится вJsCoreвбегает,JsCoreэто среда без оконного объекта, поэтому ее нельзя использовать в скриптахwindow, вы не можете работать с компонентами в сценариях, а в JsCore нет объекта XmlhttpRequest, поэтому jquery, zepto и axios нельзя использовать в небольших программах.

Это третья статья fly, которая поможет вам использовать fly в мини-программах WeChat. Прежде чем читать эту статью, если вы еще не знаете fly. Сначала прочтите первые две статьи:

Первая статья: Оптимальное решение JS HTTP-запроса — fly.js

Часть 2: Fly против axios

скачать

GitHub.com/температура/летать/…
GitHub.com/температура/летать/… (8kb)
Загрузите любой из них, а затем скопируйте его в каталог вашего проекта.

использовать

var Fly=require("../lib/wx.js") //wx.js为您下载的源码文件
var fly=new Fly();创建fly实例
...
Page({
  //事件处理函数
  bindViewTap: function() {
    //调用
    fly.get("http://10.10.180.81/doris/1/1.0.0/user/login",{xx:6}).then((d)=>{
      console.log(d.data)
    }).catch(err=>{
      console.log(err.status,err.message)
    })
  })
})

Если вы простой пользователь, вам не нужно смотреть вниз, просто зайдите сюда, не спешите сначала закрыть, заходите, звездите, а затем уходитеgithub.com/wendux/fly. Если вас интересует принцип, вот принцип, лежащий в его основе.

принцип

Поддержка небольших программ Fly на самом деле осуществляется путем настройки механизма http.Давайте взглянем на исходный код wx.js:

//微信小程序入口
var  Fly=require("../dist/fly")
var EngineWrapper = require("../dist/engine-wrapper")
var adapter = require("../dist/adapter/wx") //微信小程序adapter
var wxEngine = EngineWrapper(adapter)
module.exports=function (engine) {
    return new Fly(engine||wxEngine);
}

Видно, что код ключа находится в адаптере/wx, давайте посмотрим на код адаптера апплета WeChat:

//微信小程序适配器
module.exports=function(request, responseCallback) {
    var con = {
        method: request.method,
        url: request.url,
        dataType: request.dataType||"text",
        header: request.headers,
        data: request.body||{},
        success(res) {
            responseCallback({
                statusCode: res.statusCode,
                responseText: res.data,
                headers: res.header,
                statusMessage: res.errMsg
            })
        },
        fail(res) {
            responseCallback({
                statusCode: res.statusCode||0,
                statusMessage: res.errMsg
            })
        }
    }
    //调用微信接口发出请求
    wx.request(con)
}

Вот и вся реализация, все просто! Этот пример может помочь вам понять предложение «fly поддерживает разные среды через разные адаптеры».Что касается других сред, мы можем полностью последовать их примеру.

наконец

Опубликуйте адрес fly github еще раз, если он вам нравится, добро пожаловать в звездочку, чтобы больше людей узнали о fly, спасибо за вашу поддержку:github.com/wendux/fly