数据类型 jsonp 和 JSON 之间的区别

Difference between dataType jsonp and JSON

本文关键字:区别 之间 JSON jsonp 数据类型      更新时间:2023-09-26

我下载Jquery UI自动加载,寻找remote-jsonp.html。这是 ajax 函数,但我打开控制台。我在控制台中看不到任何请求...

数据类型有什么区别;"jsonp"和 dataType;"杰森"

$( "#city" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "http://ws.geonames.org/searchJSON",
                dataType: "jsonp",
                data: {
                    featureClass: "P",
                    style: "full",
                    maxRows: 12,
                    name_startsWith: request.term
                },
                success: function( data ) {
                    response( $.map( data.geonames, function( item ) {
                        return {
                            label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                            value: item.name
                        }
                    }));
                }
            });
        },

参考 http://jqueryui.com/demos/autocomplete/remote-jsonp.html

dataType: jsonp

域请求,这意味着对不同域的请求和对同一域相同源请求的dataType: json

使用 JSONP 在 JSON 块中加载。添加额外的"?回调=?"到 以指定回调。通过追加来禁用缓存 查询字符串参数"_=[时间戳]"到 URL,除非缓存 选项设置为 true。

阅读有关同源政策的信息

阅读更多 关于 jQuery AJAX

使用 JSONP,如果这是您要查找的内容,则不应看到 ajax 请求。但是,您应该会看到对资源的请求,因为 JSONP 用于跨域调用以从不同域中提取数据。

它返回包装在函数名称中的 JSON 数据。 jQuery 在后台处理函数名称,并将数据传递到成功处理程序中。通过动态创建一个脚本元素来加载数据,该脚本元素的 src 属性指向正在调用的服务,然后附加到浏览器的 DOM。然后,浏览器向资源发出请求,Web 服务使用回调函数和数据进行响应。