JS实现使用POST方式发送请求

window.location.href是我们常用来在js中实现页面跳转的方法,这是使用get方式发送请求,示例如下

window.location.href = url;

优点是简单易用,缺点是如果有参数的话,参数会暴露在url地址中,这降低了系统的安全性,也影响用户体验。下面我们来讲下如何通过POST请求实现页面跳转。

//发送POST请求跳转到指定页面
function httpPost(URL, PARAMS) {
  var temp = document.createElement("form");
  temp.action = URL;
  temp.method = "post";
  temp.style.display = "none";

  for (var x in PARAMS) {
    var opt = document.createElement("textarea");
    opt.name = x;
    opt.value = PARAMS[x];
    temp.appendChild(opt);
  }

  document.body.appendChild(temp);
  temp.submit();

  return temp;
}

上面这段代码就是通过虚拟表单的形式提交post请求,从而实现页面的跳转,示例如下

function toMonitorCompanyList(groupName,riskLevel,updateStatus,province,eventLevel,reportId,riskStatus){

  var params = {
    "groupName": encodeURIComponent(groupName),
    "riskLevel": riskLevel,
    "updateStatus": updateStatus,
    "province": encodeURIComponent(province),
    "eventLevel": eventLevel,
    "reportId": reportId,
    "riskStatus":riskStatus
  };

  httpPost(ctx + "/monitorCompany/toMonitorCompanyList", params);
}

使用POST方式发送请求可以传输的参数,在实际运用过程中可以根据具体的需求选择GET方式或POST方式发送请求。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • nodejs使用http模块发送get与post请求的方法示例

    本文实例讲述了nodejs使用http模块发送get与post请求的方法.分享给大家供大家参考,具体如下: GET请求 var http = require('http'); var querystring = require('querystring'); var data = { a: 123, time: new Date().getTime()};//这是需要提交的数据 var content = querystring.stringify(data); var options = {

  • 详解js跨域请求的两种方式,支持post请求

    JSONP实现跨域 常用的jquery实现跨域调用 $.ajax({ url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php", dataType: "jsonp", jsonp: "callback", context: document.body, success: function(data) { console.log(data); } }); 这个调用实际上

  • Nodejs Post请求报socket hang up错误的解决办法

    参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能.实际使用时报socket hang up错误. 后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了). 完整的代码如下(遇到类型问题的同学可以做个参考): 复制代码 代码如下: var querystring = require('querystring')   , http = require('http'); var

  • nodejs实现HTTPS发起POST请求

    准备用nodejs搞一个快速注册163邮箱的东西,需要在某一步的时候post数据到https,node的官方文档实在太简陋了,网上找了个差不多的例子,拿来改了改用. var util = require('util'), https = require('https'); var regUrl = "https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&adapter=%s&

  • JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于Servlet中get请求和post请求的区别,现总结如下: 1:请求数据的大小不同. 因为get请求的数据是要追加到URL中,而URL的数据量一般不能超过2K,所以用get请求的方法对数据的大小有限制.而post请求方法是把数据放在消息体中,所以理论上对数据量没有限制.(但是实际操作中也不能能太大) 2:安

  • 轻松创建nodejs服务器(10):处理POST请求

    目前为止,我们做的服务器没有实际的用处,接下来我们开始实现一些实际有用的功能. 我们要做的是:用户选择一个文件,上传该文件,然后在浏览器中看到上传的文件. 首先我们需要一个文本区(textarea)供用户输入内容,然后通过POST请求提交给服务器. 我们在start事件处理器里添加代码,requestHandlers.js修改如下: 复制代码 代码如下: function start(response) {  console.log("Request handler 'start' was ca

  • linux shell中curl 发送post请求json格式问题的处理方法

    今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} http://api.baidu.com 变量没有做解析 原来在shell中,"" '还是有很大区别的, 把修改后的curl发送贴出 atime=`dat

  • Angularjs中$http以post请求通过消息体传递参数的实现方法

    本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法.分享给大家供大家参考,具体如下: Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性. 一.在声明应用的时候进行设置: var httpPost = function($httpProvider) { /******************************************* 说明:$http的post提交时,纠正消息体 ***********

  • JS获取url参数,JS发送json格式的POST请求方法

    <script type="text/javascript"> 一.获取url所有参数值 function US() { var name, value; var str = location.href; var num = str.indexOf("?"); str = str.substr(num + 1); var arr = str.split("&"); for (var i = 0; i < arr.leng

  • java模拟post请求发送json的例子

    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main.utils; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; public class HttpUtilTest { Log log = new Log(this.getClass());//初始化

随机推荐