zoukankan      html  css  js  c++  java
  • $.ajax 和 $.post

    $.post,$.ajax: 都是前台向后台发送异步请求

    1.$.ajax

    这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。

    $(function () {
            var appointment = {
                Name: "galen.guo",
                Age: 20
            };
            $('#tty').click(function () {
                var url = 'TestJson';
                //前台向action传递一个json序列化对象
                $.ajax({
                    url: '@Url.Action("TestJson")',
                    type: 'POST',//指定以post方式
                    data: JSON.stringify(appointment), //将对象序列化成json格式,不能省略
                    dataType: 'json',//数据格式
                    processData: false,
                    contentType: 'application/json; charset=utf-8',
                    success: function (data) {
                        alert('ok');
                    }
                });
            });
        });

    ----processData:(默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

    后台代码:

        public class Appointment
        {
            public String Name { get; set; }
            public String Age { get; set; }
        }

        [HttpPost]
        public JsonResult TestJson(Appointment app)
        {
              return Json("");
        }

    2.$.post

    原形:jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求

    其中的[type]参数:(可选)Type of data to be sent, 默认是string,可以指定为JSON,XML,等

    使用:$.post(url, { userId: userId, "key": keyValue }, function (data) { });//向action传递的参数是健值对的形式,data 就是action中返回的值,此例中就是"hello world"

    其中url指定要调用的action,如'@Url.Action("Test")',

    Test action 声明: 

    [HttpPost]
    public JsonResult Test(Int32 userId, String key)
    {

        .........................

        return("hello world");

    }

    其实,$.post最终还是$.ajax实现的,源码如下:

         function (url, data, callback, type) {
            if (jQuery.isFunction(data)) {
                callback = data;
                data = {};
            }
            return jQuery.ajax({
                type: "POST",
                url: url,
                data: data,
                success: callback,
                dataType: type
            });

  • 相关阅读:
    实现跨域的几种方法
    2015-07-15
    unity3d中给GameObject绑定脚本的代码
    unity3d的碰撞检测及trigger
    区块链 (未完)
    mono部分源码解析
    量化策略分析的研究内容
    mono搭建脚本整理
    unity3d简介
    Hook技术之API拦截(API Hook)
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2778553.html
Copyright © 2011-2022 走看看