解决Angular的$http传递参数后台无法接受的问题

如果我们像往常一样使用jq中的$.ajax方法,那代码应该是:

$.ajax({

method:‘post‘,

url:‘url.jsp‘,

data:{

name:$(‘#id‘).val()

}

})

.success(function(){

//......

})

再来看一下$http,如果按照上面的格式,是行不通的。我们需要一些改变,将传递给后台的data改为字符串拼接的形式,并且对头部的属性进行一些改变。

HTML代码:

<div ng-controller="ajaxController">
    <input type=text ng-model="name"/>
    <input type=text ng-model="age"/>
    <button ng-click="ajax()">ajax</button>
//***展示服务器端传回来的数据**//
    <h2>ajax:{{ajaxData}}</h2>
</div

JS代码:

angular.module("myApp",[])
.config(function($httpProvider) {
$httpProvider.defaults.headers.post[‘Content-Type‘]=‘application/x-www-form-urlencoded;charset=utf-8‘;
//改变header中content-type的格式
})
.controller("ajaxController",function($scope,$http){

	 $scope.ajax=function(){
         $scope.postData="name="+$scope.name+"&age="+$scope.age;   //注意拼接形式
	 $http({
         url:‘getData.jsp‘,
         method:‘post‘,
         data:$scope.postData
     })
         .success(function(res){
             $scope.ajaxData=res;
        	 
         })
         .error(function(err){
             //......
         })
         
	 }
})

服务器端:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%  
    String name=new String();
    String age=new String();
    name=request.getParameter("name");
    age=request.getParameter("age");
    out.println("name:"+name+"&age:"+age);
 %>

运行结果如下:

是不是感觉跟jquery的$ajax一样的使用了?

时间: 2024-12-28 18:00:05

解决Angular的$http传递参数后台无法接受的问题的相关文章

解决浏览器向服务器传递参数时中文乱码问题

解决Get方式的中文参数的乱码问题: 方式1: 前提是Tomcat是默认的配置: key = new String(key.getBytes("iso8859-1"), "utf-8"); 方式2: 在Tomcat的server.xml中设置: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPo

一次性解决HTML向Flash传递参数时的乱码问题

今天下午想使用HTML向Flash传递两个参数,一直遇到错误.这里总结一下: 错误一: <param name="flashvars" value='&symc=unit1.mp3&lrcmc=unit1.lrc'/> 这样传进去得到的结果是1.3和1. 错误二: <param name="flashvars" value=encodeURIComponent('&symc=unit1.mp3&lrcmc=unit1

angular js页面传递参数

var myapp=angular.module("myApp",["ngRoute","ui.router"]); myapp.controller("FCtrl",function($scope,$state){ $scope.toSecound=function(name){ $scope.go("secound",{"name":name}); } }); myapp.contr

axios 使用post方式传递参数,后端接受不到问题

---恢复内容开始--- 一.URLSearchParams var params = new URLSearchParams(); params.append('key1', 'value1'); //你要传给后台的参数值 key/value 这个方法兼容性非常不好,ie浏览器完全不兼容. 安装qs,在 main.js里引入 npm inistall -g qs import axios from 'axios'; import qs from 'qs'; Vue.prototype.$qs

ajax传递给后台数组参数方式

在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用到了批量更改数据状态功能. 在前台可以获取每条数据的ID,但是如何通过数组方式传递给后台? 通过昨晚的各种方式的调试,终于得出了答案! 在此作为备忘. 目前有两种方式可行: 方式一 前台代码: [javascript] view plaincopy // 方式一 var _list = {}; for (var i = 0; i < checkedRow.length; i++) { _list["selec

Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)

本文装载自:http://blog.csdn.net/u012737182/article/details/52831008    感谢原文作者分享 开发环境:Tomcat9.0 在使用Ajax实现Restful的时候,有时候会出现无法Put.Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1.使用地址重写的方法传递参数.2.配置web.xml项目环境. 测试的程序为: @RequestMapping(value = "/member", method =

SpringMVC中,前台jsp封装参数,绑定参数,传递参数到后台controller的过程详解123

前台到后台的流程:前台jsp->后台:controller控制器层->service业务层->DAO数据访问层->数据库model模型层. 从上面流程可知,前台jsp的数据,想要参与到后台的业务逻辑运算,关键是要先把前台jsp的数据传递到后台的controller.这个关键点涉及到一个术语——“绑定参数”(或称“绑定数据”),即如何将前台jsp中的数据绑定为后台controller类里方法的参数. 在SpringMVC中,“绑定参数”这个过程,需要前台jsp和后台controlle

springMVC通过ajax传递参数list对象或传递数组对象到后台

springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 在SpringMVC环境中,@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串.同时ajax请求的时候也要指定dataType: "json",

post 传递参数中包含 html 代码解决办法,js加密,.net解密

今天遇到一个问题,就是用post方式传递参数,程序在vs中完美调试,但是在iis中,就无法运行了,显示传递的参数获取不到,报错了,查看浏览器请求情况,错误500,服务器内部错误,当时第一想法是接收方式有问题,换了无数次接收方式,都没有效,后来在请求情况的,Response中发现,其实根本原因是由于post参数中不能包含html代码,设计到跨域攻击...,所以被禁止了. 微软给出的建议是 ASP.NET Web窗体中禁用请求验证 ,我是没成功,后来我查到其实可以用在前端用js base64加密,后