分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

ajax2.0

发布时间:2023-09-06 01:25责任编辑:郭大石关键词:暂无标签

一、formData向后台传数据<br>
?1.formData有set、get、append等方法<br>
???1)set():设置数据<br>
?????var formData=new FormData();<br>
?????formData.set(‘a‘,2);<br>

?????如果有两个set()方法,且key相同,比如:
?????formData.set(‘a‘,2);
?????formData.set(‘a‘,3);
?????则返回的是3

???2)append():添加数据
?????var formData=new FormData();
?????formData.set(‘a‘,2);

?????如果有两个set()方法,且key相同,比如:
?????formData.set(‘a‘,2);
?????formData.append(‘a‘,3);
?????则返回的是[2,3]
???3)get():得到数据
比如通过ajax向后台传数据:
```html
<!DOCTYPE html>
<html>
?<head>
???<meta charset="utf-8">
???<title></title>
???<script>
?????window.onload=function(){
???????var oBtn1=document.getElementById(‘btn1‘);

???????oBtn1.onclick=function(){
?????????var xhr=new XMLHttpRequest();
?????????var formData=new FormData();
?????????formData.set(‘a‘,12);
?????????xhr.open(‘post‘,‘1.php‘,true);
?????????xhr.send(formData);
?????????xhr.onreadystatechange=function(){
???????????if(xhr.readyState==4){
?????????????if(xhr.status==200){
???????????????alert(xhr.responseText);
?????????????}else{
???????????????alert(‘失败了‘)
?????????????}
???????????}
?????????}
???????}
?????}
???</script>
?</head>
?<body>
???<input type="button" name="" value="ajax请求" id="btn1">
?</body>
</html>

```
```php
<?php
echo $_POST[‘a‘]+$_POST[‘b‘];
?>
```

二、formData文件上传
```html
<!DOCTYPE html>
<html>
?<head>
???<meta charset="utf-8">
???<title></title>
???<script>
?????window.onload=function(){
???????var oBtn=document.getElementById(‘btn1‘);
???????var oF1=document.getElementById(‘f1‘);

???????oBtn.onclick=function(){
?????????var formData=new FormData();
?????????formData.set(‘f1‘,oF1);

?????????var xhr=new XMLHttpRequest();
?????????xhr.upload.onload=function(){
???????????console.log(‘上传成功‘)
?????????}
?????????xhr.upload.onprogress=function(ev){
???????????console.log(ev.loaded+‘/‘+ev.total);
?????????}

?????????xhr.open(‘post‘,‘2.php‘,true);
?????????xhr.send(formData);
?????????xhr.onreadystatechange=function(){
???????????if(xhr.readyState==4){
?????????????alert(xhr.status)
???????????}
?????????}
???????}
?????}
???</script>
?</head>
?<body>

<input type="file" id="f1">
<input type="button" name="" value="ajax请求" id="btn1">
?</body>
</html>

```
0.formData.set(‘名字‘, file类型的input)
1.xhr.upload.onload:上传完成
2.xhr.upload.onprogress:进度变化

三、CORS跨域<br>
1.如果是ajax1.0,添加res.setHeader(‘Access-Control-Allow-Origin‘,‘*‘);即可
```JavasSript
const http=require(‘http‘);

let httpServer=http.createServer((req,res)=>{
?res.setHeader(‘Access-Control-Allow-Origin‘,‘*‘);
?res.write(‘aaaa‘);
?res.end();
});

httpServer.listen(8080);

```

2.如果是ajax2.0,需要加上allowHosts.indexOf(req.headers[‘origin‘])!=-1的判断
```JavasSript
const http=require(‘http‘);
let allowHosts=[‘taobao.com‘,‘baidu.com‘];
let httpServer=http.createServer((req,res)=>{
?if(allowHosts.indexOf(req.headers[‘origin‘])!=-1){
?????res.setHeader(‘Access-Control-Allow-Origin‘,‘*‘);
?}
?res.write(‘aaaa‘);
?res.end();
});

httpServer.listen(8080);

```

ajax2.0

原文地址:http://www.cnblogs.com/chaofei/p/7857938.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved