在上一篇《编译Parse-SDK-JS之旅》中已经介绍了环境安装以及编译的方法,这里不多说。
我们现在要做的,是改变request方式。
因为微信小程序中,不能使用xmlHttpRequest
对象,只能使用官方提供的wx.request
api去请求网络资源,所以我们要修改代码,才能移植使用。
定位脚本
研究了会代码,发现网络请求函数在src/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不能带端口,这个请自行更改,这里只是测试代码有效性