Firefox 插件 - 如何在 Chromeworker 中使用 XMLHttpRequest?
Firefox addon - how to use XMLHttpRequest in Chromeworker?
我正在使用 ChromeWorker 从 API 下载一些数据。
我正在尝试在 myWorker.js.
中导入 XHR
importScripts("resource://gre/modules/workers/require.js");
var { XMLHttpRequest } = require("sdk/net/xhr");
我在 运行ning cfx 运行
时收到以下错误
Error: TypeError: The argument to require() must be a string uri, got sdk/net/xhr
我正在使用这个演示 https://github.com/Noitidart/ChromeWorker
如何在 myWorker.js 中导入和使用 XMLHttpRequest?
我修改了我的非工作 XHR 函数以在 ChromeWorker 中工作,但它并不完美,因为我不知道如何在 ChromeWorker 版本中设置 loadFlags,因为 ChromeWorker 版本没有 .channels
,很奇怪.
https://gist.github.com/Noitidart/ec1e6b9a593ec7e3efed
我的函数使用了一个 promise 方案,但你也可以不这样做:
var aOptions = {
responseType: 'text'
}
var aStr = 'http://www.bing.com/';
let xhr = new XMLHttpRequest();
let evf = f => ['load', 'error', 'abort'].forEach(f);
if (aOptions.aPostData) {
xhr.open('POST', aStr, true);
//xhr.channel.loadFlags |= aOptions.aLoadFlags; // i dont know how to do this from ChromeWorker yet
xhr.responseType = aOptions.aResponseType;
xhr.send(aOptions.aPostData);
} else {
xhr.open('GET', aStr, true);
//xhr.channel.loadFlags |= aOptions.aLoadFlags; // i dont know how to do this from ChromeWorker yet
xhr.responseType = aOptions.aResponseType;
xhr.send(null);
}
跳转到 moz js-ctypes irc 频道以获得更多帮助:)
irc://moznet/jsctypes
我正在使用 ChromeWorker 从 API 下载一些数据。 我正在尝试在 myWorker.js.
中导入 XHRimportScripts("resource://gre/modules/workers/require.js");
var { XMLHttpRequest } = require("sdk/net/xhr");
我在 运行ning cfx 运行
时收到以下错误Error: TypeError: The argument to require() must be a string uri, got sdk/net/xhr
我正在使用这个演示 https://github.com/Noitidart/ChromeWorker 如何在 myWorker.js 中导入和使用 XMLHttpRequest?
我修改了我的非工作 XHR 函数以在 ChromeWorker 中工作,但它并不完美,因为我不知道如何在 ChromeWorker 版本中设置 loadFlags,因为 ChromeWorker 版本没有 .channels
,很奇怪.
https://gist.github.com/Noitidart/ec1e6b9a593ec7e3efed
我的函数使用了一个 promise 方案,但你也可以不这样做:
var aOptions = {
responseType: 'text'
}
var aStr = 'http://www.bing.com/';
let xhr = new XMLHttpRequest();
let evf = f => ['load', 'error', 'abort'].forEach(f);
if (aOptions.aPostData) {
xhr.open('POST', aStr, true);
//xhr.channel.loadFlags |= aOptions.aLoadFlags; // i dont know how to do this from ChromeWorker yet
xhr.responseType = aOptions.aResponseType;
xhr.send(aOptions.aPostData);
} else {
xhr.open('GET', aStr, true);
//xhr.channel.loadFlags |= aOptions.aLoadFlags; // i dont know how to do this from ChromeWorker yet
xhr.responseType = aOptions.aResponseType;
xhr.send(null);
}
跳转到 moz js-ctypes irc 频道以获得更多帮助:) irc://moznet/jsctypes