帆软JS实现模板消息提醒

楼主
啦啦啦啦啦

帆软给指定用户动态提示消息,并且使用户查收消息。具体步骤为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&amp;ref_t=design&amp;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类似等等。

③记住在以上处理过的参数后拼接&amp(cpt后也需要拼接。)as是拼接在后的参数,需要链接传参时添加即可。总体如下图所示。

USER 为指定的用户进行提醒。

链接需要首先配置一个系统的模板参数,设置提示内容,然后再将该提示内容放在指定链接中,实现特定的内容提示。

本日学习到的知识有contentTypeprocessData

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

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 1474浏览人数
最后回复于:2022-1-23 16:13

返回顶部 返回列表