linkredwin
=
function(A,B,C,D,E,F,G){
var
formredwin
=
document.createElement("form")
formredwin.method
=
'POST'
document.body.appendChild(formredwin)
formredwin.action
=
"http://www.A.com/A.wiki?A="
+encodeURI(A)
+
"&B="
+encodeURIComponent(B)
+
"&C="
+encodeURI(C)
+
"&D="
+encodeURI(D)
+
"&E="
+encodeURI(E)
+
"&F="
+encodeURI(F)
+"&G="+encodeURI(G)
formredwin.submit()
formredwin.parentNode.removeChild(formredwin)
}
方法二:
1.
+
URL
中+号表示空格
%2B
2.
空格
URL中的空格可以用+号或者编码
%20
3.
/
分隔目录和子目录
%2F
4.
?
分隔实际的
URL
和参数
%3F
5.
%
指定特殊字符
%25
6.
#
表示书签
%23
7.
&
URL
中指定的参数间的分隔符
%26
8.
=
URL
中指定参数的值
%3D
以上这篇js的form表单提交url传参数(包含+等特殊字符)的两种解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
下面是用js动态创建form然后进行post提交的方式,参数url是表单提交的去向,参数params是给去向传递的参数(JSON结构),参数target设置何处打开链接文档(可选):function postcall( url, params, target){
var tempform = document.createElement("form")
tempform.action = url
tempform.method = "post"
tempform.style.display="none"
if(target) {
tempform.target = target
}
for (var x in params) {
var opt = document.createElement("input")
opt.name = x
opt.value = params[x]
tempform.appendChild(opt)
}
var opt = document.createElement("input")
opt.type = "submit"
tempform.appendChild(opt)
document.body.appendChild(tempform)
tempform.submit()
document.body.removeChild(tempform)
}
可以手动构建一个FormData进行表单提交,代码如下:
var form = new FormData()//添加参数
form.append('name', 'jack')
form.append('age', 20)
//使用xmlhttprequest发起请求
var xhr = new XMLHttpRequest()
xhr.open('post', '这里添上请求的url', true)
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
//成功
}
}
//执行请求
xhr.send(form)