Avatar ·

什么是JSONP以及它为什么被创建?用简单的话和例子解释

大家好!我是一名前端开发新手,正在尝试理解跨域请求的主题。我知道有CORS,但在旧项目和某些API文档(例如旧版Google Maps API)中遇到了JSONP的提及。 我不太明白它是如何工作的。似乎这是一种绕过浏览器对另一个域请求限制的方法。但具体是如何做到的?为什么名称中使用了“padding”这个词? 假设我有这样一段JavaScript代码,试图从另一个服务器获取数据: ```javascript // 对另一个域的普通fetch请求 fetch('https://api.example.com/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('错误:', error)); ``` 如果服务器`api.example.com`没有配置CORS头,这段代码将无法工作。但我听说JSONP可以在服务器不支持CORS的情况下绕过这个限制。这怎么可能?毕竟浏览器会阻止请求——这确实是...