Angularjs 如何在angular中将mozSystem属性添加到$http服务?
在我的应用程序中将jquery更改为angular,但不知道如何将此属性添加到服务$http中,这是jquery中的一些内容: var xhr=newXMLHttpRequest{mozSystem:true} 更多信息:Angularjs 如何在angular中将mozSystem属性添加到$http服务?,angularjs,xmlhttprequest,firefox-os,Angularjs,Xmlhttprequest,Firefox Os,在我的应用程序中将jquery更改为angular,但不知道如何将此属性添加到服务$http中,这是jquery中的一些内容: var xhr=newXMLHttpRequest{mozSystem:true} 更多信息: 您需要首先配置HTTP头 // Define HTTP header for .NET .config(function($httpProvider, $routeProvider){ $httpProvider.defaults.headers.post['Cont
您需要首先配置HTTP头
// Define HTTP header for .NET
.config(function($httpProvider, $routeProvider){
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8';
var param = function(obj){
var query = '', name, value, fullSubName, subName, subValue, innerObj, i;
for(name in obj){
value = obj[name];
if(value instanceof Array){
for(i=0; i<valuel.length; ++i){
subValue = value[i];
fullSubName = name + '[' + i +']';
innerObj = {};
innerObj[fullSubName] = subValue;
query += param(innerObj) + '&';
}
}
else if(value instanceof Object) {
for(subName in value) {
subValue = value[subName];
fullSubName = name + '[' + subName + ']';
innerObj = {};
innerObj[fullSubName] = subValue;
query += param(innerObj) + '&';
}
}
else if(value !== undefined && value !== null)
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
}
return query.length ? query.substr(0, query.length - 1) : query;
};
$httpProvider.defaults.transformRequest = [function(data){
return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
}];
})
希望这有帮助 目前,您实际上必须进行一些框架黑客攻击。在angular.js文件中,查找
var XHR = window.XMLHttpRequest || function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e1) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e2) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e3) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
并替换为:
var XHR = function(){
return new window.XMLHttpRequest({mozSystem: true});
};
截至2015年4月30日AngularJS v1.3.15
没有办法在angular中动态创建XHR对象,但正在讨论
FxOS的角度修正
以下是angular的修补版本,它们的不同之处在于XHR已修补,以便在FxOS上与systemXHR一起使用
注意:不要试图将这些链接用作CDN
变通办法
有一个CDN链接,您可以从中下载最新版本,这很好,因为您将在设备上打包应用程序
例如:
*
您可能需要未压缩的源代码,以便更容易使用
在文件中搜索XHR、createXHR或XMLHttpRequest,您将看到需要修补的函数
正如@jan所说,您将替换看起来像
return new window.XMLHttpRequest()
与
您可以使用uglify js缩小文件,下载并编辑缩小版(如果这对您来说不太可怕),也可以使用commando并使用未缩小版。这与所问的问题无关。
return new window.XMLHttpRequest()
return new window.XMLHttpRequest({ mozSystem: true })