JavaScript 组件在使用 transformrequest 时没有名为 "available" 的方法



我正在学习Angular,我有一个请求对象,它是这样的形式:

var data = {
   destinationProjectId: proj.Id,
   items: $scope.selections   // this is an array
}

美元范围。选择将返回实际的JavaScript对象。端点期望条目数组只具有选择项的Id。我知道我可以这样做:

var newItems = [];
$scope.selections.forEach((obj) => {
   newItems.push(parseInt(obj.Id));
});

和$http一起发送。但是我要做的是:

$http({ method: "POST", url: url, data: $scope.selections, 
transformRequest: (data, headers) => {
   var payload = [];
   var s = <any>data.items;
   s.forEach((o) => {
      payload.push(parseInt(o.Id));
   }); 
   return payload;
});

在firebug控制台,我得到:

[Exception... "JavaScript component does not have a method named: "available"'JavaScript component does not have a method named: "available"' when calling method: [nsIInputStream::available]" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)"

可能发生了什么?

[例外……当调用方法:[nsIInputStream::available]时,JavaScript组件没有一个名为:"available"的方法" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)"

这是某些firefox插件的错误。不是你的代码。nsIInputStream是firefox为插件提供的API。(参考:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIInputStream)

也许更新你的firebug或检查其他插件。

最新更新