为什么这个网站返回包装在jQuery标签中的自动完成数据
Why is this website returning autocomplete data wrapped in a jQuery tag?
我正在查看 www.healthgrades.com 上的自动完成小部件并检查网络响应。
我认为数据是 JSON,但它似乎已经通过某种编码/过滤器运行并转义,然后在 jQuery 标签中返回(大概是缓存破坏者?
一小部分数据如下所示。
jQuery17207977216457948089_1379039838014([{"ItemIds":null,"LinkUrl":"/hospital-directory/texas-tx-central/scott-and-white-memorial-hospital-hgst712bc8b6450054","Text":"Scott and White Memorial Hospital","PlainText":null,"Type":"tophospital","TrackingName":null,"StateAbbreviation":null,"Data":null},{"ItemIds":null,"LinkUrl":"/hospital-directory/texas-tx-austin/st-davids-medical-center-hgst613bc8b6450431","Text":"St. David'u0027s Medical Center","PlainText":null,"Type":"tophospital","TrackingName":null,"StateAbbreviation":null,"Data":null},{"ItemIds":null,"LinkUrl":"/hospital-directory/texas-tx-southern/st-davids-georgetown-hospital-hgst182bc8b6450191","Text":"St. David'u0027s Georgetown Hospital","PlainText":null,"Type":"tophospital","TrackingName":null,"StateAbbreviation":null,"Data":null},{"ItemIds":null,"LinkUrl":"/hospital-directory/texas-tx-austin/heart-hospital-of-austin-hgstbb7ecdaa450824","Text":"Heart Hospital of Austin","PlainText":null,"Type":"tophospital","TrackingName":null,"StateAbbreviation":null,"Data":null},{"ItemIds":null,"LinkUrl":"/hospital-directory/texas-tx-austin/st-davids-north-austin-medical-center-hgst234bc8b6450809","Text":"St. David'u0027s North Austin Medical Center","PlainText":null,"Type":"tophospital","TrackingName":null,"StateAbbreviation":null,"Data":null}]);
这样做有什么好处,如果我的假设是错误的,这里发生了什么?
jQuery JSONP
支持的一个例子。
JSONP,如果你不熟悉,是"带有填充的JSON"。填充是对全局函数的调用,该函数以 JSON 作为参数。
开头的名称 jQuery17207977216457948089_1379039838014
是 jQuery 在请求开始时生成的全局函数。而且,它将在查询字符串中使用 ?
占位符为任何请求创建一个:
jsonp
类型将查询字符串参数callback=?
追加到 URL。服务器应在 JSON 数据前面加上回调名称,以形成有效的 JSONP 响应。我们可以指定一个参数名称,而不是使用 jsonp 选项callback
来$.ajax()
.
JSONP 的主要优点是它支持跨源请求。它通过创建<script>
而不是XMLHttpRequest
(类似于使用$.getScript()
)来实现这一点,因为它们不受SOP的限制。但是,它们仅限于GET
请求;所以这有点权衡。
而且,这是在引入CORS之前可用的跨源选项。
顺便说一句:JSONP在技术上被视为JavaScript,利用了JSON的语法取自JavaScript。
它是 jsonp 请求的响应格式,它是一种用于克服 ajax 请求的同源策略限制的技术,其中浏览器阻止对与页面加载位置不同的域的 ajax 请求。
在这种特殊情况下,它没有多大用处,因为页面和 ajax 资源都位于同一域中。
- 我可以按特定的顺序迭代一个标签中的不同数据标签吗
- 如何将数据标签与数据一起传递,以便在高图中的工具提示中显示
- Highcharts车速表,里程计数器的数据标签
- 高图表数据标签重叠
- 删除高图表数据标签上的阴影/背景发光
- .scrollInto查看带有数据标记的任何元素,或使用类对带有数据标签的内容进行分段
- 圆环饼图中数据标签的自定义CSS类
- jquery数据标签
- Dojo-簇状柱形图数据标签作为Excel
- 具有向下钻取的 Highcharts 列会导致主图表中的数据标签模糊,但向下钻取的列除外
- 如何使用 Jquery Highcharttable 柱形图格式化数据标签
- jQuery功能,用于隐藏基于未在点击上运行的HTML5数据标签的元素
- 高图表 - 调整列大小以修复数据标签
- 根据高图表中的列值更改数据标签颜色、旋转和对齐值
- 数据标签格式化程序在 Highchart 中用于第一个类别
- 如何让 CKEditor 允许数据标签标记
- D3堆积条形图添加数据标签并解决D3标签放置问题
- 如何在我的高图表饼图中获取一个数据标签,这是一个字体很棒的图标
- 高图表条形图:可以在数据标签内组合数据点
- Dimple.js-将数据标签添加到条形图的每个条形图中