帆软给指定用户动态提示消息,并且使用户查收消息。具体步骤为AJAX + FORMDATA 实现过程如下
第一步上JS
var cmd = "save_message";
var formData = new FormData();
formData.append("cmd",cmd);
var user = "yangcg"; //用户名称
FR.ajax({
url: "http://120.46.133.100:1200/decision/view/report?op=template_message",
contentType: "application/x-www-form-urlencoded",
type: "POST",
data: {
cmd: "save_message",
xmlconf: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><R xmlVersion=\"20170720\" releaseVersion=\"10.0.0\" class=\"com.fr.plugin.templatemessage.javascript.MessageJavaScript\" pluginID=\"com.fr.plugin.templatemessage.v10\" plugin-version=\"1.7.7\"><Parameters/><Parameters/><TemplateMsgJS link=\"http://120.46.133.100:1200/decision/view/report?viewlet=%25E6%25B5%258B%25E8%25AF%2595%25E7%259B%25AE%25E5%25BD%2595%252F%25E6%25A8%25A1%25E6%259D%25BF%25E6%25B6%2588%25E6%2581%25AF%25E6%258E%25A5%25E5%258F%2597%25E6%25B5%258B%25E8%25AF%2595.cpt&ref_t=design&ref_c=9153010f-4a67-442b-be15-c1e6c7f9095c\" title=\"[968f][4fbf][6d4b][6d4b]\" content=\"[6768][627f][5149] [633a][6d3b][8dc3][7684][ff01][ff01][ff01][ff01][ff01]\" wcApplication=\"\" dtApplication=\"\" checkBoxValue=\"1\" image=\"\"/><pc username=\""+user+"\" role=\"\" department=\"\"/><MessageAppObjectJavaScript username=\"\" role=\"\" department=\"\"/></R>"
},
success: function(data, textStatus) {
alert("数据传输成功!");
location.reload();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("数据传输失败!");
location.reload();
},
complete: function(XMLHttpRequest, textStatus) {
console.log("执行了");
}
});
LINK 为指定的跳转页面。
注意: A 主页面 B 跳转页面
① 首先你需要在浏览器中复制B页面的链接如下图所示
② 其次把这个链接页面进行处理,依据CPT后缀为分割,以&字符进行拼接其余参数。参数如下
ref_t、ref_c类似等等。
③记住在以上处理过的参数后拼接&(cpt后也需要拼接。)as是拼接在后的参数,需要链接传参时添加即可。总体如下图所示。
USER 为指定的用户进行提醒。
链接需要首先配置一个系统的模板参数,设置提示内容,然后再将该提示内容放在指定链接中,实现特定的内容提示。
本日学习到的知识有contentType 与 processData
contentType
contentType 主要设置你发送给服务器的格式,服务端根据前端设置的contentType 来解析前端的数据。
关于http请求中的一些小知识点可以大致总结如下(巩固基础)
(1)、HTTP 协议是以 ASCII 码 传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为
三个部分:状态行、请求头、消息主体。
(2)、协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使
用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足
上面的格式就可以。
(3)、数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 java、python 等,以及它们
的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的
Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。
在ajax中使用contentType
之前在使用ajax的时候,服务端老是获取不到数据前端传过来的数据。但不是name对应不上,后面检查
还是在contentType上面出现问题。contentType 主要设置你发送给服务器的格式,dataType设置你收到
服务器数据的格式。在 jquery 的 ajax 中,
contentType默认值是:application/x-www-form-urlencoded,这种格式的特点就是,name/value 成为
一组,每组之间用 & 联接,而 name与value 则是使用 = 连接。
如: www.baidu.com/q?key=aiqinhai&value=jiangmofeng 这是get ,
而 post 请求则是使用请求体,参数不在 url 中,
在请求体中的参数表现形式也是: key=aiqinhai&value=jiangmofeng的形式。
下面列举几个ajax中contentType 使用情况
不添加 contentType:"application/json",这时候,数据是以键值对的形式传递到后端
processData
默认值是为true,但是设置为true的时候,jquery 会将数据序列化,
所以使用 ajax 上传文件时,这里建议使用processData: false