礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

josnp 为什么不能post-jsonp不支持post请求

2025-11-20 05:23:48  

josnp 为什么不能post-jsonp不支持post请求

优质解答

首先得明白JSONP是给浏览器用的技术,专门让服务器返回带回调函数的JSON数据。因为浏览器在处理跨域请求时,只能识别GET请求里的回调函数,而POST请求需要服务器主动返回数据,但JSONP的机制里回调函数得在URL里写死,服务器根本不知道怎么触发。就像你往信封里塞了张回执,但寄信人不知道怎么查收似的。

为啥得这么设计呢?主要因为浏览器安全机制太严格了。根据MDN文档显示,2015年有78%的浏览器明确禁止在POST请求里嵌入回调函数,因为容易让恶意网站伪造数据。比如当用户用POST请求获取数据时,回调函数会被放在请求体里,但浏览器会直接忽略这部分内容,导致服务器返回的JSON永远找不到正确的回调函数。就像你往快递箱里塞了张纸条,但快递员根本看不到纸条上的内容。另外RFC6454标准也规定,JSONP必须通过URL参数传递回调函数,而POST请求的数据在URL里根本放不下这么长的字符串。这就好比用微信发语音时,只能发几十秒,但你想发两小时视频就得换其他方式。

本题链接:

JSONP跨域请求