帮忙看下一个 jsonp 问题

2017-05-04 01:39:42 +08:00
 ilaipi
我在爬一个网站,debug 了一下,看到这一步:


这里写的是个 post 请求,但是在 network 面板看到的是一个 get 请求


不是很明白 jsonp,如果我要模拟这个请求,用普通的 http post 可以吗?
我用的是 nodejs+axios
3609 次点击
所在节点    程序员
26 条回复
FEDT
2017-05-04 01:55:26 +08:00
jsonp 只能是 get 请求吧
zhihaofans
2017-05-04 02:11:17 +08:00
jsonp 只能 get 吧?
你可以翻一翻文档 http://api.jquery.com
think2011
2017-05-04 04:44:50 +08:00
不能,你需要明白 jsonp 的原理。
aaronlam
2017-05-04 08:34:27 +08:00
jsonp 是动态添加 script 标签用的是 GET 请求
DingJZ
2017-05-04 08:52:28 +08:00
jsonp 肯定是 get
LeeSeoung
2017-05-04 09:08:03 +08:00
回复楼上各位 jsonp post 跨域方案: http://www.jb51.net/article/68980.htm
jyz19880823
2017-05-04 09:25:13 +08:00
@LeeSeoung 这就不叫 jsonp 了吧
wly19960911
2017-05-04 09:29:27 +08:00
jsonp 不是 ajax,jsonp 不是 ajax,jsonp 不是 ajax,

jQuery 把 jsonp 加入 ajax 的形式可能会误导人,
f0rger
2017-05-04 09:37:37 +08:00
jsonp 只能是 get,上面那个跨域 post 的明显都改成 json 接收参数了。你们 2 个都好好了解一下 jsonp 吧
ilaipi
2017-05-04 09:43:15 +08:00
谢谢大家,不知道怎么说,感觉关注点有点偏了,是不是需要先弄清楚这个网站的这个 jsonp 请求,我模拟的时候一定也要是 jsonp 吗?
我是在做小爬虫
sliwey
2017-05-04 09:59:14 +08:00
@LeeSeoung #6 不是所有的跨域都叫 jsonp
LeeSeoung
2017-05-04 10:05:31 +08:00
#7 #9 #11 我说是跨域 POST 解决方案。。能好好理解清楚我说的意思不?
LeeSeoung
2017-05-04 10:06:25 +08:00
wuhuaji
2017-05-04 10:08:10 +08:00
https://whj.site/2016/04/15/how-to-cross-site/ 一篇文章看明白什么 jsonp 是如何工作的。
huijiewei
2017-05-04 10:32:55 +08:00
@LeeSeoung 这个不叫 JSONP 了好吗
Jaylee
2017-05-04 11:11:16 +08:00
@LeeSeoung 这叫 cors,跟 jsonp 半毛钱关系没有
zhangsan
2017-05-04 11:16:09 +08:00
你们的回复都笑死我了,啥是 jsonp,jsonp 是为了解决浏览器的同源策略,利用 js 的( src )可跨域属性实现的一种跨域请求方法。
jsonp 只出现在 前端浏览器,跟后端一点关系都没有。

后端想 post 还 get 完全是看心情。

回复一句“ jsonp 肯定是 get 的”,要搞懂本质啊
lilydjwg
2017-05-04 11:16:17 +08:00
@LeeSeoung #12 那个是跨域 POST,搜「 MDN CORS 」有详细的教程。jsonp 只能 GET,因为 HTML 加载脚本只能用 GET 方式。

你想要 POST,请使用「跨域 POST 」的方式,不要用「 jsonp 」。
lilydjwg
2017-05-04 11:18:34 +08:00
如果你要模拟这个请求,用普通的 HTTP GET 就行了。因为它就是普通的 HTTP GET。你在网络请求上点右键,可以选择「复制为 cURL 命令」,就能得到这个请求发出的具体方法。
LeeSeoung
2017-05-04 11:21:29 +08:00
@lilydjwg 怪我表述不清。。之前想跨域 post 发现 jsonp 搞不定 POST,后来发现上面那篇文章搞定了跨域 POST

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX