千家信息网

如何采用ajax来进行boa服务器下的异步通信

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章给大家分享的是有关如何采用ajax来进行boa服务器下的异步通信的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。主要实现及踩过的坑如下:1. get 还是 post请
千家信息网最后更新 2025年01月18日如何采用ajax来进行boa服务器下的异步通信

这篇文章给大家分享的是有关如何采用ajax来进行boa服务器下的异步通信的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

主要实现及踩过的坑如下:

1. get 还是 post请求:怎么发请求参见W3School上的ajax教程

推荐一般人没有前端基础的人使用get请求,因为只需要在请求的参数做一个字符串拼接就可以完成基本的ajax请求,具体实现可以参照一下这个网址(http://blog.csdn.net/huguohu2006/article/details/7755107),接下来重点讲一下post请求,优势这里我就不多讲了,前面的教程里面都有,主要讲一下实现方式:

function sender(url, data) {var xhr = createXHR();if (xhr) {xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {console.log(xhr.responseText);console.log(xhr.responseText.toString());var returnValue = xhr.responseText.toString();console.log(returnValue);return returnValue;// firefox下xhr.responseText作为返回值失效的问题// ie可以利用return来得到值。但firefox则不能,只能在readyState == 4 && status == 200时处理一个函数// 这个函数应当作为一个参数传递入函数。有个奇怪现象你如果去除红线部分的注释,firefox又可以取到值。// 估计是firefox使用ajax取值有个延时造成。//return xhr.responseText.toString();}};xhr.open("post", url, true);// send(string) 仅适用于post请求xhr.send(data);} else {//XMLHttpRequest对象创建失败alert("浏览器不支持,请更换浏览器!");}}

利用调用sender函数来实现ajax,函数的两个参数分别是请求的url和要发送的数据,注意post请求只能发送string类型的数据。如果要发送其他类型的数据建议采用jquery封装的ajax方法,这里之所以采用原生的ajax方法来发送数据主要有以下几个原因:

•jquery库的体积比较大,有可能mount进开发箱上的linux系统时出现失败的情况,这种情况可以通过mount u盘的方式解决 mount u盘的命令如下: mount -r /dev/uba4 /web -r为mount进文件的读写权限,具体可执行搜索查询,uba4为U盘在linux系统上显示的名字,web为目标文件夹,使用U盘挂载的缺点在于整个U盘的文件会全部被复制到目标文件夹中,有点缀余

•发送的数据不很多,也没有其他的类型要求,使用string类型完全可以满足开发需求,没必要引入jquery库增加项目空间

•原生的ajax可以更好地解释http请求的原理

下面再介绍一下cgi文件对http请求的处理,示例函如下:

#include #include #include char* get_cgi_data(FILE* fp, char* method){char* input;int len;int size=1024;int i=0;if (strcmp(method, "GET") == 0) /**< GET method */{input = getenv("QUERY_STRING");return input;}else if (strcmp(method, "POST") == 0) /**< POST method */{len = atoi(getenv("CONTENT_LENGTH"));input = (char*)malloc(sizeof(char) * (size+1));if (len == 0){input[0] = '\0';return input;}while (1){input[i] = (char)fgetc(fp);if (i == size){input[i+1] = '\0';return input;}--len;if (feof(fp) || (!(len))){i++;input[i] = '\0';return input;}i++;}}return NULL;}int main(void){char* input;char* method;char name[64];char passwd[64];int i=0;int j=0;printf("Content-type:text/html\n\n");printf("The following is query result:");method = getenv("REQUEST_METHOD");input = get_cgi_data(stdin, method);printf("string is: %s", input);return 0;}

上面包含了c语言处理两种请求的方法,get请求比较简单,直接使用getenv("QUERY_STRING")就可以获取到请求发送的数据,post请求的处理则比较负责,先获取请求内容长度,然后根据长度来动态分配一个等长的字符串空间,将发送的数据传给字符串,然后再根据自己项目的需要进行相应的处理即可。

感谢各位的阅读!关于"如何采用ajax来进行boa服务器下的异步通信"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 函数 文件 处理 类型 内容 参数 字符 字符串 方法 服务器 服务 通信 情况 教程 文件夹 方式 更多 浏览器 目标 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全隔离卡中孚 军人手机网络安全使用承诺书 网络安全意识的英文 司丹博士讲解网络安全法 湖南大学招标与采购中心服务器 白云app软件开发价格表 数据库更新后字段里的内容不见了 安徽点餐系统软件开发外包公司 游戏服务器 协议 安全 网络安全三不和三上 数据库字段显示blob h1z1服务器英文 方舟pvp服务器打老外加模组 战地5选什么服务器加速 sv软件开发 长寿区一站式网络技术服务协议 数据库加载sql 网络技术总监 招聘信息 安徽服务器机箱云主机 财务管理软件开发维护工作好找吗 数据库 可视化设计工具 网络安全靠人名的手抄报视频 股票交易数据库有多大 数据库报表是按什么设计 当兵可以学网络技术吗 国家对网络安全的看法 流量明星做数据库 如何和服务器同步 长寿区一站式网络技术服务协议 人工智能网络安全专业研究生
0