首页 > web前端 > js教程 > 正文

Jquery以及AngularJS 中 Get/Post传参的使用详情

寻∝梦
发布: 2018-09-07 15:10:02
原创
1526人浏览过

传参并不是很难的事,但有时牵扯到例如要传一个对象或者form到后端的时候就会有些麻烦,在这里总结一些使用方法。现在就让我们一起来看这篇angularjs的文章吧

首先先介绍发送请求时我们经常会混淆的几个属性:
dataType: 期待服务器返回的数据格式
mimeType: 告诉说如何处理服务器返回的数据格式,这样browser就会进行相应的处理, 例如,设定类型为"Text/html",那么client端就知道说,这是一个HTML的文档,我直接呈现出来就可以了;如果说是“Application/pdf”,那么client端就会知道说需要启动PDF阅读器插件去呈现内容。
contentType: 是指你所要发送的数据类型,例如“application/json;charset=utf-8”就是很常见的类型, 而“application/x-www-form-urlencoded; charset=UTF-8”是默认类型。

另外,比较一下Request Payload和Form的方式有何区别:
Request Payload需要设定Content-Type:application/json
在chrome developer tool里你会看到他传递的是一个Object/json,注意到里面还包含了数组,假如你是通过ajax提交的请求,浏览器只是显示出你通过Payload body提交的内容,浏览器并不知道资料是从哪里来的
2.1.png

Form形式的需要设定Content-Type: application/x-www-form-urlencoded 或者 Content-Type: multipart/form-data,通过developer tool看到的是这样的,这种情况下form-data就是Request payload,浏览器知道什么键对应什么值,所以他是以xx=xx的形式展现的,要注意的是,数组被转成了字串。
2.2.png

因此,当你需要传的资料仅仅是键值对,用Form的形式足以,如果需要传递的是复杂结构的(例如有嵌套的数组,对象),用RequestPayload比较合适。(想看更多就到PHP中文网angularjs学习手册中学习)

接下来让我们比较一下各种传参情况~

第一种情况,传普通字串
JQuery:

let params = {
    a: 1,
    b: 2
}
// 第一种方法:
$.ajax({
        "dataType": 'json',
        "type": "GET",
        "url": "your_request?" + $.param(params)
})

//第二种方法:
$.ajax({
        "type": "GET",
        "url": "your_request",
        "data": params
})
登录后复制

AngularJS:

var conf = {
    method: 'GET',
    url: 'your_request',
    params: {
        a: 1,
        b: 2
    }
};

$http(conf).then(function(response){
    console.log(response.data);
}, function(){
    console.log("error");
}).finally(function(){
    console.log("finally");
});
登录后复制

第二种情况:Post form data
JQuery:

let params = {
    a: 1,
    b: 2,
    ary1: [3,4,5]
}

$.ajax({
    "type": "POST",
    "url": "your_request",
    "data": params
})
登录后复制

AngularJS:
注意data需要被转换成URL-encoded字串
ContentType需要设定为'application/x-www-form-urlencoded'指定传送的数据格式为Form

var conf = {
    method: 'POST',
    url: 'your_request',
    data: $.param({
        c: 3,
        d: 4
    }),
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
};
登录后复制

第三种情况:使用RequestPayload进行Post参数
JQuery:
设定contentType为“application/json”,并且将params序列化

let params = {
    a: 1,
    b: 2,
    ary1: [3,4,5]
}

$.ajax({
    "type": "POST",
    "url": "your_request",
    "data": JSON.stringify(params),
    "contentType": "application/json"
})
登录后复制

AngularJS:

var conf = {
    method: 'POST',
    url: 'your_request',
    data: {
        c: 3,
        d: 4
    }
};
登录后复制

有时,当服务器返回response是null,在火狐里会出现xml解析错误,是因为火狐默认使用xml解析服务器返回值,而遇到null返回值时,发生了解析错误。
在JQuery中可以通过设定mimeType来解决

$.ajax({
        "dataType": 'json',
        "type": "GET",
        "url": "your_request",
        "mimeType": "json"
})
登录后复制

在AngularJS中就比较难设定mimeType

本篇文章到这就结束了(想看更多就到PHP中文网angularjs学习手册中学习),有问题的可以在下方留言提问


以上就是Jquery以及AngularJS 中 Get/Post传参的使用详情的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号