js怎么把当前网页post提交?(跨站)
发布网友
发布时间:2022-04-30 14:54
我来回答
共4个回答
热心网友
时间:2022-04-20 21:42
跨域请求有三种方式解决,第一种是前端自己解决,一种是后端处理,还有一种是前后端都做处理。
前端的解决思路是,创建一个iframe,它的src为你要请求的地址,把post请求放到iframe里去处理。
后端处理的话就是在返回的消息头中设置哪些域可以跨域请求。
res.header('Access-Control-Allow-Origin', '允许的域');
res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With');
res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');
res.header('X-Powered-By','3.2.1');
第三种是用jsonp的方式请求,这种方式可以百度出一大堆,不做赘述。
热心网友
时间:2022-04-20 23:00
您好,JS是不支持跨站POST数据的哦~您说的<img>方法属于GET
function bindEvent(obj,etype,lfun,bbind)/* bind event ro element (etype不含on)(bbind: true:bind;flase:unbind) */
{
if(bbind){
if(window.attachEvent){obj.attachEvent("on"+etype,lfun);}//ie
else{obj.addEventListener(etype,lfun,false); }//火狐
}else{
if(window.detachEvent){obj.detachEvent("on"+etype,lfun);}
else{obj.removeEventListener(etype,lfun,false); }}
}
function SendData(data,URL)
/*1.因为JS不支持字节型数组,所以这里data需求string类型
2.data为url编码后数据
3.URL要求含http://和?xxx=(数值不要)的全称
4.后台程序必须是特制的,因为这里要求分段发送*/
{
var head=document.getElementsByTagName("head");
var tsd=data.split("");
var tld=[],tldi=0;
for(var i=0;i<=tsd.length-1;i++)
{
if(i*2>tldi*512+512){tldi++;}/*分段*/
tld[tldi]+=String.fromCharCode(tsd[i].charCodeAt());/*转码成ASCII*/
}
var scrobj=[];i=0;
var sendFun=function()
{
if(i>tld.length-1){return;}
scrobj[i]=document.createElement("script");
scrobj[i].setAttribute("src",URL+tld(i));
head.appendChild(scrobj[i]);
bindEvent(scrobj[i],"load",function(){head.removeChild(scrobj[i]);/*记得清理无用的标签*/i++;sendFun();/*next*/},true);
bindEvent(scrobj[i],"error",function(){head.removeChild(scrobj[i]);sendFun();/*出错的话重发*/},true);
}
sendFun();
}
看一下这个是否符合要求(我把<img>改成了<script>,因为<img>是默认显示的,<script>是纯后台的)
热心网友
时间:2022-04-21 00:34
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form" name="form" action="提交的地址" method="get">
<!--这里是html代码-->
</form>
</body>
js提交上述表单方法:
原生js:
document.getElementById('form').submit();
jquery:
$('#form').submit();
热心网友
时间:2022-04-21 02:26
不知所云,完全听不懂你说什么