Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在angular中将mozSystem属性添加到$http服务?_Angularjs_Xmlhttprequest_Firefox Os - Fatal编程技术网

Angularjs 如何在angular中将mozSystem属性添加到$http服务?

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

在我的应用程序中将jquery更改为angular,但不知道如何将此属性添加到服务$http中,这是jquery中的一些内容: var xhr=newXMLHttpRequest{mozSystem:true}

更多信息:


您需要首先配置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 })