为什么该网站返回包装在jQuery标签中的自动完成数据?

凯文斯

我正在看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}]);

这样做的好处是什么,如果我的假设是错误的,这是怎么回事?

乔纳森·洛诺夫斯基(Jonathan Lonowski)

这是jQueryJSONP支持的一个例子

JSONP(如果您不熟悉的话)是“ JSON with Padding”填充是使用JSON作为参数的全局函数的调用。

开头的名称jQuery17207977216457948089_1379039838014是jQuery在请求开始时生成的全局函数。并且,它将使用?查询字符串中占位符为所有请求创建一个

jsonp类型将查询字符串参数追加callback=?到URL。服务器应在JSON数据之前添加回调名称,以形成有效的JSONP响应。我们可以使用callbackjsonp选项指定其他参数名称$.ajax()

JSONP的主要优点是它支持跨域请求。它通过创建<script>而不是XMLHttpRequest(类似于using $.getScript()完成此操作,因为它们不受SOP的限制但是,它们仅限于GET请求;所以这是一个权衡。

并且,这是在引入CORS之前可用的跨域选择

顺便说一句:JSONP从技术上讲是JSON,被视为JavaScript,它利用了从JavaScript提取的JSON语法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel数据返回包装在数组中

jQuery UI自动完成中的“值”与“标签”

为什么Contains()返回false但包装在列表中,而Intersect()返回true?

将jQuery自动完成数据附加到textarea内容,而不是覆盖它

Firefox为什么不接受包装在pre中的代码标签的CSS字体大小?

表格行包装在封闭标签中

为什么Typescript认为async / await返回包装在promise中的值?

过滤自动完成数据源

必须包装在封闭标签中

BigCommerce自动moxieplayer包装在tinymce中

相邻的JSX元素包装在结束标签中时,必须包装在包装标签错误中

为什么`char`数据类型中的数据溢出会导致将值包装在其范围内?

如何过滤具有2万个元素的数组中的自动完成数据?

输入中的自动完成数据

带有标签元数据的jquery自动完成类别

使用jquery,匹配单个字符,后跟冒号并包装在span标签中

jQuery UI使用Ajax来自动完成数据

为什么在HTML中允许不将按钮包装在SCRIPT标签中而使按钮调用函数?

如何将jQuery内容包装在H标签中?

为什么我无法从该网站接收数据?

呈现jQuery自动完成数据中存在的html元素

jQuery自动完成-如何修改返回的数据

清除自动完成数据jQuery

使用select2:opening调用中的值作为ajax自动完成数据参数的输入

jQuery自动完成数据

为什么列表包装在IntoIter中?

XSLT 将 XML 数据包装在 html 标签中

在自动完成的 jQuery UI 中显示数据

如何在组件中绑定角材料自动完成数据