GVKun编程网logo

ajax传递参数与controller接收参数映射关系(ajax传参到controller)

14

对于想了解ajax传递参数与controller接收参数映射关系的读者,本文将是一篇不可错过的文章,我们将详细介绍ajax传参到controller,并且为您提供关于ajax+php+Controll

对于想了解ajax传递参数与controller接收参数映射关系的读者,本文将是一篇不可错过的文章,我们将详细介绍ajax传参到controller,并且为您提供关于ajax + php + Controller 控制所有后台函数调用,ajaxcontroller、ajax 带参数请求后 在controller中获取参数、ajax传递参数中文乱码问题、ASP.NET jquery ajax传递参数的实例的有价值信息。

本文目录一览:

ajax传递参数与controller接收参数映射关系(ajax传参到controller)

ajax传递参数与controller接收参数映射关系(ajax传参到controller)

将ajax的参数传递至后台controller时,data 中的参数名要与controller中的形参保持一致。

前端ajax代码:

 1 $.ajax({
 2      url:"/doLogin", 3      type:"post", 4      data:{
 5          "username":$("#username").val();
 6          "password":$("#password").val(), 7          "code":$("#code").val()
 8      }, 9      success:function(){}       
10 });

 

后台controller代码:

@RequestMapping("/doLogin")
@ResponseBody
public Map<String,Object> doLogin(String username,String password,String code){
    // 省略代码
    ....      
}    

这样做就能将前端传来的数据 一 一对应到controller 的形参中去。

而如果想前端数据的参数名和后台controller 形参不一致,可以使用@RequestParam 注解将自己的形参与前端数据的参数名映射起来。

后台controller代码:

@RequestMapping("/doLogin")
@ResponseBody
public Map<String,Object> doLogin(@RequestParam(value = "username")String users,String code){
    // 省略代码
    ....      
}  

注:前端的data 数据的顺序可以不和后台controller 的形参顺序一致。

ajax + php + Controller 控制所有后台函数调用,ajaxcontroller

ajax + php + Controller 控制所有后台函数调用,ajaxcontroller

ajax + php + controller 控制所有后台函数调用,ajaxcontroller

好久没有来这边发布代码了

总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构

第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名

$(''#submit'').on(''click'', <span>function</span><span> (e) {
        e.stopPropagation();
        $.ajax({
            url: </span>"../../controllers/Controller.php"<span>,
            data: {
                action: </span>"LoginController/login"<span>,
                username: username,
                password: password
            },
            dataType: </span>"text"<span>,
            type: </span>''POST''<span>,
            timeout: </span>10000<span>,
            error: </span><span>function</span><span> () {
                alert(</span>"服务器超时"<span>);
            },
            success: </span><span>function</span><span> (data) {
                    alert(data);
            }
        });
    });</span>
登录后复制

第二部分:Controller.php,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现

立即学习“PHP免费学习笔记(深入)”;

<?<span>php

</span><span>if</span> (!<span>empty</span>(<span>$_REQUEST</span>[''action''<span>])) {
    </span><span>try</span><span> {
        </span><span>$action</span> = <span>explode</span>(''/'', <span>$_REQUEST</span>[''action''<span>]);
        </span><span>$class_name</span> = <span>$action</span>[0<span>];
        </span><span>$method_name</span> = <span>$action</span>[1<span>];
        </span><span>require</span> <span>$class_name</span> . ''.php''<span>;
        </span><span>$class</span> = <span>new</span> ReflectionClass(<span>$class_name</span><span>);
        </span><span>if</span> (<span>class_exists</span>(<span>$class_name</span><span>)) {
            </span><span>if</span> (<span>$class</span>->hasMethod(<span>$method_name</span><span>)) {
                </span><span>$func</span> = <span>$class</span>->getmethod(<span>$method_name</span><span>);
                </span><span>$instance</span> = <span>$class</span>-><span>newInstance();
                </span><span>$func</span>->invokeArgs(<span>$instance</span>, <span>array</span>(<span>$_REQUEST</span><span>));
                </span><span>$result</span> = <span>$instance</span>-><span>getResult();
                </span><span>echo</span> <span>$result</span><span>;
            }
        }
    } </span><span>catch</span> (<span>Exception</span> <span>$exc</span><span>) {
        </span><span>echo</span> <span>$exc</span>-><span>getTraceAsString();
    }
}
</span>?>
登录后复制

第三部分:LoginController.php,这个文件是具体的功能类

<?<span>php

</span><span>class</span><span> LoginController {
  <br />    <span>private </span>$result;<br />
    </span><span>function</span><span> LoginController() {
        </span><span>//</span><span>初始化数据库连接等参数</span>
<span>
    }

    </span><span>function</span> login(<span>$args</span><span>) {
       </span><span>//</span><span>具体的登录逻辑</span>
<span>    }

    </span><span>function</span><span> getResult() {
        </span><span>return</span> <span>$this</span>-><span>result;
    }

}

</span>?>
登录后复制

 

ajax 带参数请求后 在controller中获取参数

ajax 带参数请求后 在controller中获取参数

@JFinal   我使用Ajax方式请求后在Controller中获取不到相应的参数信息  代码如下  谢谢指点!

function addTest(){
var name = $("input[name=testModel.name]").val();
var age =  $("input[name=testModel.age]").val();
$.ajax({
   type: "POST",
   url: "addTest",
   data: {name:name,age:age},
   dataType: "json",
   success: function(data){
    if(data.success){
    window.location.href="play";
    }else{
    alert("保存数据出错!");
    }
   }
});
}

@ActionKey("/addTest")
public void addTest(){
HashMap<String,Object> resultMap = new HashMap<String,Object>();
try{
TestModel testModel = getModel(TestModel.class);
boolean flag = testModel.save();
if(flag){
resultMap.put("success", true);
}else{
resultMap.put("success", false);
}
}catch(Exception e){
resultMap.put("success", false);
}
renderJson(resultMap);
}



ajax传递参数中文乱码问题

ajax传递参数中文乱码问题

总结

以上是小编为你收集整理的ajax传递参数中文乱码问题全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

ASP.NET jquery ajax传递参数的实例

ASP.NET jquery ajax传递参数的实例

第一种:GET传递

前台 ajax GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低

后台接收:Request.QueryString[“参数名字”]!

例如:

rush:js;"> function LoadBar(id) { var project = id; var month = $("#txtMonth").val(); $.ajax({ type: "GET",async: false,url: 'GetProjectscore.aspx?project=' + project + '&month=' + month,dataType: 'json',beforeSend: function () { },success: function (msg) { if (msg) { optionBar.xAxis.categories = eval(msg.projectscore.orgname); optionBar.series = eval(msg.projectscore.series); var t = eval("(" + subtitle + ")"); optionBar.subtitle = t.subtitle; chart = new Highcharts.Chart(optionBar); } },error: function () { alert('出错了啦!'); } });

第二种:POST传递

2.1 字符串 作为参数传递

即传递的参数是以字符串的形式传递。dataType=”text”;

前台 ajax POST 传递 :将表单数据提交服务器的一种请求,要提交的数据位于信息头后面的实体中。

后台接收:Request.Form[“参数名字”]

例如:

rush:js;"> $("input[name=returnfile]").click(function () { var returnflag = $(this).val(); var guid = $(this).prev().html(); $.ajax({ type: "POST",async: "false",url: "returndata.aspx",data: "flag=" + returnflag + "&guid="+guid+"",success: function () { } }); })

后台接收:

2.2 JSON 作为参数传递

即传递的参数是以json字符串的形式传递。dataType=”json”;

前台 ajax POST 传递 :将表单数据提交服务器的一种请求,要提交的数据位于信息头后面的实体中。

后台接收:

例如:

rush:js;"> $("input[name=returnfile]").click(function () { var returnflag = $(this).val(); var guid = $(this).prev().html(); var str = "{'flag':'" + returnflag + "','guid':'" + guid + "'}"; var json = eval("(" + json + ")"); $.ajax({ type: "POST",url: "khdf_returndata.aspx",dataType:”JSON” data: json,success: function () { } }); })

后台接收:

读取后newtonsoft 做 JSON处理

2.3 JSON 作为参数传递

rush:js;"> $(function () { $("#btnLogin").click(function () { // var username = $("#txtUserName").val(); // var password = $("#txtPassword").val(); // var paras = "username=" + username + "&password=" + password; // alert(paras); var data = { username: $("#txtUserName").val(),password:$("#txtPassword").val() } $.post("Home/CheckLogin",data,function (data) { alert(data); }) }) })

如果按照2.2post。则必须加上: contentType: "application/json"

后台接收:

rush:js;"> [HttpPost] public ActionResult CheckLogin(string username,string password) { string name = username; string pwd = password; return View(); }

以上就是小编为大家带来的ASP.NET jquery ajax传递参数的实例全部内容了,希望大家多多支持小编~

关于ajax传递参数与controller接收参数映射关系ajax传参到controller的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于ajax + php + Controller 控制所有后台函数调用,ajaxcontroller、ajax 带参数请求后 在controller中获取参数、ajax传递参数中文乱码问题、ASP.NET jquery ajax传递参数的实例的相关信息,请在本站寻找。

本文标签:

上一篇ajax – 在JSF 2中按Enter键时调用bean中的监听器:inputText(js监听回车键)

下一篇ajax – 防止双击disable_form,ruby on rails(ajax防止重复发送请求)