扫码关注官方订阅号
为什么jsonp只能使用get请求,是因为get的一些原因,还是post的某些原因,还是一些别的原因,我查文档说是‘这是由于该技术本身的特性所决定的’ 请问这种本身的特性是指的什么,能不能具体的说明一下。万分感谢!
闭关修行中......
JSONP 是一种【请求一段 JS 脚本,把执行这段脚本的结果当做数据】的玩法。
所以,你能 POST 一段通过 script 标签引入的脚本吗?
(如果看过 JSONP 库的源码就知道,常见的实现代码其实就是 document.createElement('script') 生成一个 script 标签,然后插 body 里而已。在这里根本没有设置请求格式的余地)。
document.createElement('script')
类似于给你的页面里面动态加了一段js 代码,你觉得js文件可以post吗?
假设你请求的地址传回这么个网页.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="jquery.min.js"></script> </head> <body> </body> </html>
浏览器拿到这个网页后需要解析, 解析到
<script src="jquery.min.js"></script>
这一行代码的时候, 就知道这里需要一个js文件, 于是再发起一个请求, 去拿这个js文件. 这个请求只能用GET方法, 不可能是POST, 就好像你在浏览器地址栏输入地址回车进入一样.
JSONP的实现原理就是创建一个script标签, 再把需要请求的api地址放到src里. 所以只能是GET的.
因为<script>标签,只支持GET
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
JSONP 是一种
【请求一段 JS 脚本,把执行这段脚本的结果当做数据】
的玩法。
所以,你能 POST 一段通过 script 标签引入的脚本吗?
(如果看过 JSONP 库的源码就知道,常见的实现代码其实就是
document.createElement('script')生成一个 script 标签,然后插 body 里而已。在这里根本没有设置请求格式的余地)。类似于给你的页面里面动态加了一段js 代码,你觉得js文件可以post吗?
假设你请求的地址传回这么个网页.
浏览器拿到这个网页后需要解析, 解析到
这一行代码的时候, 就知道这里需要一个js文件, 于是再发起一个请求, 去拿这个js文件. 这个请求只能用GET方法, 不可能是POST, 就好像你在浏览器地址栏输入地址回车进入一样.
JSONP的实现原理就是创建一个script标签, 再把需要请求的api地址放到src里. 所以只能是GET的.
因为<script>标签,只支持GET