使用jsonp

jsonp

首先我使用Node.js创建了一个服务器。
实现了一些基础功能,和待会需要使用的callback实现了一些基础功能,因为我们需要从输入的参数中解析出地址,和相关信息。所有用到了url模块中的parse,url.parse(req.url,true)。此时得到parobj,?后面的值会在parobj.qurey.callback这样去获取。然后返回数据的时候注意拼接成一个函数的格式,在数据加载完成时会自动执行函数show()在这里插入图片描述
返回的结果(这里注意jsonp写在执行函数的下面,因为show需要先定义)
在这里插入图片描述
最后执行show得到结果
在这里插入图片描述
对比直接使用ajax被浏览器同源策略拦截
在这里插入图片描述
在这里插入图片描述

### 如何在HTML页面中通过JSONP进行跨域数据请求 要在HTML页面中使用JSONP实现跨域请求,可以通过动态创建`<script>`标签来完成。以下是详细的说明: #### 原理概述 JSONP的核心在于利用`<script>`标签的特性——它能够加载并执行来自不同源的JavaScript文件。服务器返回的内容是一个带有回调函数调用的字符串形式的JSON对象。客户端预先定义好这个回调函数,在接收到响应后立即被调用[^3]。 #### 实现方法 以下是一段简单的HTML代码示例,展示如何通过JSONP发起跨域请求: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSONP Example</title> <script type="text/javascript"> function handleResponse(response) { console.log('Data received:', response); document.getElementById('output').innerText = 'Server Response: ' + JSON.stringify(response.data); } window.onload = function() { var script = document.createElement('script'); script.src = 'https://example.com/api?callback=handleResponse'; document.body.appendChild(script); }; </script> </head> <body> <div id="output">Loading...</div> </body> </html> ``` 上述代码的关键部分如下: 1. 定义了一个名为`handleResponse`的全局函数,用于处理从远程服务端返回的数据。 2. 当页面加载完毕时,动态创建一个`<script>`元素,并将其`src`属性设置为目标URL加上指定的回调参数名称(这里是`callback=handleResponse`)。 3. 将该`<script>`元素追加到文档体中,浏览器会自动下载并执行其中的脚本内容[^4]。 #### 注意事项 - **安全性问题**:由于JSONP依赖于外部资源直接注入到网页环境中运行,因此存在潜在的安全风险,比如可能遭受XSS攻击。如果对方站点不可信,则不应采用此种方式传递敏感信息[^1]。 - **仅限GET请求**:正如前面提到过的那样,因为它是基于<script>标签工作的缘故,所以无法支持除GET之外的方法如POST等操作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值