angularjs中ajax请求时传递参数的方法

method1方法使用的是params参数,该用法会把参数直接附加到url中

method2方法使用的是data参数,该参数会把页面参数类型从默认的multipart/form-data改为application/x-www-form-urlencoded类型,并且将传递的data解析为字符串,该方法会以post参数的方式传递

下面是代码部分:

<html ng-app="myApp">
<head>
<title>angularjs-ajax</title>
<script type="text/javascript" src="../../lib/ionic/js/angular/angular.min.js" charset="utf-8"></script>
</head>
<body ng-controller="ctrl">
<input type="button" value="抓取页面内容1" ng-click="method1()" />
<input type="button" value="抓取页面内容2" ng-click="method2()" />
<div style="border: 1px solid #ccc;width: 500px;height:400px;">{{content}}</div>
<script>
    var app = angular.module(‘myApp‘,[]);

    app.config(function($provide){

        $provide.factory("transFormFactory",function(){
            return {
                transForm : function(obj){
                    var str = [];
                    for(var p in obj){
                      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                    }
                    return str.join("&");
                }
            };
        });
    });

    app.controller("ctrl",function($scope,$http,$q,transFormFactory){

        $scope.method1 = function() {
            $scope.url = "http://localhost:8081/Learning5/T1.action";
            $http({method:"POST",url:$scope.url,params:{msg:‘abc‘}}).success(function (data) {
                $scope.content = data;
            });
        };

        $scope.method2 = function() {
            $scope.url = "http://localhost:8081/Learning5/T1.action";
            $http({method:"POST",url:$scope.url,data:{msg:‘123‘},transformRequest:transFormFactory.transForm,headers:{‘Content-Type‘: ‘application/x-www-form-urlencoded‘}}).success(function (data) {
                $scope.content = data;
            });
        };
    });
    </script>
</body>
</html>
时间: 2024-12-14 18:53:52

angularjs中ajax请求时传递参数的方法的相关文章

关于angularjs中ajax请求php接口参数个是转换的问题

mainApp.config(function($httpProvider){ $httpProvider.defaults.transformRequest = function(obj){ var str = []; for(var p in obj){ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); } return str.join("&"); } $httpPr

struts2中注解redirect时传递参数中文乱码问题解决方法

试过了很多方法  tomcat 编码  .字符串转换编码 .URLEncoder  .. 但是都没解决,后来仔细看了   struts2 的redirect ,redirectAction , 加上 params={"encode","true"} 就不会有乱码了 @Action(value = "/backend/deleteApplyInfoOfAuditById", results = { @Result(name = "succ

js 中ajax请求时设置 http请求头中的x-requestd-with= ajax

今天发现 AngularJS 框架的$http服务提供的$http.get() /$http.post()的ajax请求中没有带 x-requested-with字段. 这样的话,后端的php 就无法判断 接受的http请求是否是 ajax请求了. 怎么办呢,显然就是给http 请求头中 加上这个字段就可以了. 1.AngularJS 中可以这样子: I don't know well MVC3 but you can set a custom header for all request fr

ASP.NET MVC API与JS进行POST请求时传递参数 -CHPowerljp原创

在API前添加    [HttpPost] 表示只允许POST方式请求 [HttpPost] public IHttpActionResult Get_BIGDATA([FromBody]Datas Datas) { try { return Json(Datas.rid); } catch (Exception e) { return Json("-1"); } } 要先通过POST方式读取到参数,需要在添加[FromBody]表示从key value键值对中读取参数 Datas 表

Thinkphp5中利用js/jQuery传递参数的方法

window.location.href="{:url('Index/index')}>"+"/ID/"+ID; //这样可以生成,但url模式改变则不能用 window.location.href="{:url('Index/index','ID=" + ID+ "')}" //解析不成功. window.location.href="{:url('Index/detail',['id' => &quo

jquery中的ajax请求用法以及参数详情

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

jquery中ajax使用error调试错误的方法,实例分析了Ajax的使用方法与error函数调试错误的技巧

代码:$(document).ready(function() {            jQuery("#clearCac").click(function() {                jQuery.ajax({                    url: "/Handle/Do.aspx",                    type: "post",                    data: { id: '0' }

IE内核发送ajax请求时不会将url中的参数编码

有一次用户遇到创建文件,名称为中文时乱码的问题. 经调查,发现用户使用的是国产浏览器ie模式 抓取请求发现 IE: 键 值请求 POST /Handlers/CreateTxtFile.ashx?filename=阿斯达是.txt HTTP/1.1Accept */*Content-Type application/x-www-form-urlencoded; charset=UTF-8X-Requested-With XMLHttpRequestReferer http://mt.sogou.

解决在Fragment中启动Activity时传递请求码的问题

解决在Fragment中启动Activity时传递请求码的问题: 首先需要指出的是Fragment有startActivityForResult方法,而Activity中也有startActivityForResult方法:两者的区别是: Fragment中的startActivityForResult方法: FragmentActivity中的startActivityForResult方法: 从官方的解释中可以看出Fragment中的startActivityForResult方法是调用的是