Parse Platform

修改Parse-SDK-JS之旅:request请求

2017-05-25  本文已影响0人  NextStack

在上一篇《编译Parse-SDK-JS之旅》中已经介绍了环境安装以及编译的方法,这里不多说。

我们现在要做的,是改变request方式。
因为微信小程序中,不能使用xmlHttpRequest对象,只能使用官方提供的wx.request api去请求网络资源,所以我们要修改代码,才能移植使用。

定位脚本

研究了会代码,发现网络请求函数在src/RESTController.js文件中,摘抄部分代码如下:

RESTController.js

修改脚本

好了,我们首先来确认下,我们需要在微信小程序中进行使用,所以什么xmlHttpRequest之类的代码,都可以删除了。
然后我们再修改ajax方法即可(request方法不需要修改,因为它也是调用的ajax
修改完毕后的代码如下:

  ajax(method: string, url: string, data: any, headers?: any) {

    var promise = new ParsePromise();
    var attempts = 0;

    var dispatch = function() {

      headers = headers || {};
      if (typeof(headers['Content-Type']) !== 'string') {
        headers['Content-Type'] = 'text/plain'; // Avoid pre-flight
      }
      // 发起请求
      wx.request({
        url, data, method, headers,
        success: (res) => {
          // 请求成功
          promise.resolve(res.data, res.statusCode, res);
        },
        fail: (res) => {
          // 请求失败
          promise.reject(res.toString());
        },
        complete: (res) => {
          // 请求完成
        }
      });
    }
    dispatch();

    return promise;
  },

所以,这个脚本看起来大概是这样的(确实删除了很多无用的代码,爽!)

最终效果

测试代码

代码修改好了,我们重新编译一下,然后复制dist/parse.min.js文件到微信小程序目录,就可以使用了。

最终测试,发现完美使用!

实际在测试中,还是有点问题,比如localStorage问题,这个下边讲,还有就是wx.request规定url不能带端口,这个请自行更改,这里只是测试代码有效性

测试结果

附:
修改Parse-SDK-JS之旅:localStorage存储

上一篇 下一篇

猜你喜欢

热点阅读