fetch与formdata的故事
来源:互联网 发布:大数据股票龙头股 编辑:程序博客网 时间:2024/05/23 14:48
前传
很久以前有个前端想学习fetch的用法,于是他用php写了一个接受post请求的接口,然后前台写了一个使用fetch请求PHP接口的demo,如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>login</title></head><body> <button onclick="loginbtn();">提交</button></body><script> function loginbtn(){ console.log("开始请求。。。"); let params = {'id':"123"}; fetch("http://localhost/myshop/myshop/data/test1.php",{ method:"POST", mode:'no-cors', headers:{}, body:params }).then(function(response){ console.log(response); }) }</script></html>
结果发现后台获取不了数据,于是他开始向伟大的度娘求救了,度娘告诉他一个方法:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>login</title></head><body> <button onclick="loginbtn();">提交</button></body><script> function loginbtn(){ console.log("开始请求。。。"); let params = {'id':"123"}; //将此处的param换成formdata的格式即可 let formdata = new FormData(); formdata.append("name","admin"); fetch("http://localhost/myshop/myshop/data/test1.php",{ method:"POST", mode:'no-cors', headers:{}, body:formdata }).then(function(response){ console.log(response); }) }</script></html>
原因
fetch在post下不支持直接传递参数,如果你说jQuery为什么可以呢?因为jQuery将传递的数据提前使用formdata做了处理。
福利
为了方便响应小伙伴对后台代码的渴求,顺便贴下后台的代码吧
<?php header("Access-Control-Allow-Origin:*"); if(isset($_POST["name"])){ echo "请求成功"; print_r($_POST["name"]); }else{ echo "请求失败"; }
好了,故事讲完了,都回家吃饭吧。。。
阅读全文
0 0
- fetch与formdata的故事
- js-用于上传的FormData与Blob
- 文件上传与FormData对象的使用
- git的push与fetch
- fetch与传统的ajax
- git fetch与git pull的区别--多用git fetch
- smarty fetch与display的区别
- Oracle游标的for与fetch
- php中fetchall()与fetch()的区别
- 关于ThinkPHP的fetch与display
- HTML5 FormData的使用方法
- formdata的强大
- FormData 对象的使用
- FormData 的方法说明
- FormData 对象的使用
- FormData 对象的使用
- FormData的使用
- formData的使用
- 7.3 异常类
- VIM/VI
- spring boot本地事物管理和分布式事物管理(五)
- linux 用户权限设置示例
- Thinkphp的list_to_tree 实现无限级分类列出所有节点
- fetch与formdata的故事
- java 实现Mybatis入门
- vue-resource emulateJSON
- ansible的运用
- apply、call的区别和使用
- 浅谈总线通信机制----USB学习指南与总结
- cadence vmanager(四)vmanager软件使用介绍
- hdu身份证验证(17新生赛)
- CSDN-markdown编辑器示例