面试-JS Web API-JSONP和cors
JSONP( JSON with Padding )
JSONP是通过 <script>
标签来实现跨域数据传输的技术。它是为了绕过浏览器的同源策略限制而诞生的。
- 访问一个网址,服务端一定返回一个html文件吗? ---不是的
- 服务器可以任意动态拼接数据返回的,只要符合html格式的要求就可以。
JSONP的工作原理:
- 客户端发送请求:客户端创建一个
<script>
标签,并将数据请求的 URL 设置为该标签的 src 属性。同时给 API 一个 回调函数 名称,告诉它,等会儿把数据通过这个函数传回给我。
<script src="http://example.com/data?callback=handleResponse"></script>
这里通过 callback=handleResponse 告诉 API:我希望你返回的数据用 handleResponse 这个函数来处理。
- 服务器返回响应:服务器会将返回的数据包装在一个回调函数里,而不是以传统的JSON格式返回,并返回给客户端。
handleResponse({
"name": "TechRxRepair",
"location": "Tulsa"
});
当浏览器接收到这个响应时,浏览器实际上是在执行一段脚本代码(因为你用了