一般认识url传递参数是以get方式,不过我们也可以用post传递,特别是在做一些接口时,非常有用,本文我们列举了用php和Javascript实现的方法。

PHP实现方法

在做接口,post传递方式,数据以字符串形式传输,返回数据用JSON封装。

然后就开始各种测试啊。

分享最终的方法:

定义抓取函数:

function http_post_data($url, $data_string) {      $ch = curl_init();      curl_setopt($ch, CURLOPT_POST, 1);      curl_setopt($ch, CURLOPT_URL, $url);      curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);      curl_setopt($ch, CURLOPT_HTTPHEADER, array(          'Content-Type: application/json; charset=utf-8',          'Content-Length: ' . strlen($data_string))      );      ob_start();      curl_exec($ch);      $return_content = ob_get_contents();      ob_end_clean();      $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);      return array($return_code, $return_content);  }

然后是方法:

$url  = "路径";  $data = array(); //数组  $data = json_encode($data);  //转化为字符串  list($return_code, $return_content) = http_post_data($url, $data);  $return_content = json_decode($return_content,1);  var_dump($return_content); //输出返回结果。

window.open url 参数post方式传递

最近在做web项目,碰到需要跨页面传递参数的功能,就是那种需要把当前页面的内容带到新开的子窗体中,以前的做法是传一个id过去,然后在新窗口中去读数据库的内容。虽然不怎么麻烦,但是如果内容么有在数据库里保存,仅仅是处以拟稿状态时,就不能实现了,用户还常常认为是个bug。考虑采用get的方式传递,把需要的内容都序列化然后,通过url去传,显得很臃肿,而且get的传递内容长度有限制。于是就想到用post的方式传递,问题在于open方法不能设置请求方式,一般网页的post都是通过form来实现的。如果仅仅模拟form的提交方式,那么open方法里那种可设置窗体属性的参数又不能用。最后想办法整了这么一个两者结合的方式,将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中。

比较有意思的是直接通过调用form的submit方法不能触发onsubmit事件,查看了帮助文档,必须手动的触发,否则只能看到页面刷新而没有打开新窗口。代码中只传递了一个参数内容,实际可传递多个。

具体代码如下:

function openPostWindow(url,name,data)   {       var tempForm = document.createElement("form");       tempForm.id="tempForm1";       tempForm.method="post";       tempForm.action=url;       tempForm.target=name;       var hideInput = document.createElement("input");       hideInput.type="hidden";       hideInput.name= "content"      hideInput.value= data;      tempForm.appendChild(hideInput);        tempForm.attachEvent("onsubmit",function(){ openWindow(name); });      document.body.appendChild(tempForm);       tempForm.fireEvent("onsubmit");      tempForm.submit();      document.body.removeChild(tempForm);      return false;  }  function openWindow(name)   {       window.open('about:blank',name,'height=400, width=400, top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes, status=yes');    }   

调用:

');">     这里是调用;     

注意红色部分 如果没有这个,会导致页面上 这种页面丢失,这是 链接的href 和 onclick 共存问题,

请求的链接是用的 A 标签,A上同时写了href和onclick事件。对于链接 A 标签而言,当用户鼠标单击的时候,A对象被触发时会首先去执行onclick部分,然后是href。

解决方法就是:

直接把onclick事件写在href中:href="javascript:openPostWindow(。。。)"

还有一种解决方案:Test

这样是忽略了href部分,这对于通过onclick传递this,或者无法避开a对象时都有用。

jq.$post传递参数给php,通过URL参数post传递的实现方式 PHP/Javascript相关推荐

  1. android webview参数,Android webView解析URL参数

    2015年6月18日 13:56:21 星期四 又当爹又当娘啊............ public void onPageFinished(WebView view, String url) { s ...

  2. java重定向url有参数吗_JavaScript重定向URL参数的两种方法小结

    这篇文章主要介绍的是JavaScript重定向URL参数的两种方法,下面话不多说,直接看示例代码. 一.字符拼接形式 function setUri(para, val) { var strNewUr ...

  3. java正则获取url参数_正则获取URL参数

    一 获取指定URL参数 function getUrlParams(name) { var reg = new RegExp("(^|&)" + name + " ...

  4. js获取url参数vue.js获取url参数 JQ获取url参数

    在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 1.window.location.href(设置或获取整个 URL 为字符串) ...

  5. java url参数加密_针对url参数的加密解密算法(原创)

    基本思路是:前端对参数进行加密,并经过urlrewriter进行地址改写传入后台,后台再进行解密.如:对这样一个url--‍‍‍‍http://1.1.1.1:8080/a.do?param=1,加密 ...

  6. 百度搜索URL参数你知道多少

    http://www.baidu.com/s?wd=关键字 wd(Keyword):查询的关键词: http://www.baidu.com/s?wd=关键字&cl=3 cl(Class):搜 ...

  7. JS获取当前页面 URL 参数方法(转)

    转自:JS获取URL参数方法.js获取当前url中的参数.JS获取URL参数的4种方法总结 法一 const result = new URLSearchParams(this.props.locat ...

  8. vue2和vue3的参数接受方式以及vue中url参数解码

    记录vue2和vue3的接受参数以及vue中url参数解码 vue2 this.$router.onReady(() => {let obj = this.$route.query.obj || ...

  9. 百度搜索URL参数 搜索关键字

    http://www.baidu.com/s?wd=关键字 wd(Keyword):查询的关键词: http://www.baidu.com/s?wd=关键字&cl=3 cl(Class):搜 ...

  10. 百度搜索URL参数解析详解与对快排的作用!

    新增参数(移动端) word=代表手机移动搜索,wd=代表电脑PC搜索 sa=ib(首页) sa=tb(上方搜索输入框) sa=np(内页) ============================= ...

最新文章

  1. Load Runner测试脚本(tuxedo服务)的编写指南
  2. 来自Riot 的一份游戏美术教程(五):技术美术
  3. C#中的cookie编程
  4. 单机/伪分布式Hadoop2.4.1安装文档
  5. Oracle分析函数-keep(dense_rank first/last)
  6. 093:QuerySet API详解-QuerySet转换为SQL的条件
  7. 吴恩达机器学习【第六天】神经网络模型
  8. c语言 指针 地址溢出,堆栈溢出,指针在C中
  9. 用计算机考试怎么作弊,一种防作弊计算机考试系统的制作方法
  10. 计算机ppt教案设计大赛,广东省创新杯说课大赛计算机类一等奖作品:PPT电子相册制作教学设计...
  11. 【时事摘抄】(原创)既然故宫领导对错误一慨不知,认神马错?
  12. iso硬盘安装 凤凰os_多系统下成功硬盘安装phoenix OS
  13. 两步解决:PDF旋转后怎么保存?
  14. 使用LabelMe标注目标检测数据集并转换为VOC2017格式
  15. 有一个字符串,如11.2美元34人民币;如何将数字与单位分开,放入数组中呢,数组比如 attr[0]=11.2 attr[1]=美元 ,依次类推
  16. 自治,甲骨文继续领先的开始?
  17. Robocup 仿真2D 学习笔记(三)最初的改进1
  18. 基于51单片机的扫地小车,扫地机器人设计 主要功能有寻迹避障,来回清扫功能,往返清扫功能
  19. CentOS 7 安装 TinyProxy 代理服务器
  20. k8s 之服务发现(service)

热门文章

  1. 频繁分配释放内存导致的性能问题的分析
  2. 8 下半部和推后执行的工作
  3. 深入解读Linux进程调度系列(总览)
  4. STM32相关问题解决方法
  5. UMHexagonS算法优化
  6. 用python建云盘_超简单!基于Python搭建个人“云盘”
  7. python导入第三方库dlib报错解决
  8. JAVA--set用法
  9. kylin 系列介绍
  10. java反射 优缺点_Java反射机制的原理与使用(反编译)