dataType jsonp和JSON之间的区别

Ali*_*sla 19 javascript ajax jquery jquery-ui

我下载了Jquery UI autoload,寻找remote-jsonp.html.这是ajax功能,但我打开控制台..我在控制台中看不到任何请求...

dataType;"jsonp"和dataType;"JSON"之间有什么区别

$( "#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
                        }
                    }));
                }
            });
        },
Run Code Online (Sandbox Code Playgroud)

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

the*_*dox 28

dataType: jsonp对于跨域请求,这意味着请求到不同的域和dataType: json相同的域 - 相同的源请求.

使用JSONP加载JSON块.添加额外的"?callback =?" 到URL的末尾以指定回调.通过将查询字符串参数"_ = [TIMESTAMP]"附加到URL来禁用缓存,除非缓存选项设置为true.

阅读相同的原产地政策

阅读有关jQuery AJAX的更多信息


Jef*_*Fay 8

使用JSONP,您不应该看到ajax请求,如果这是您正在寻找的.但是,您应该看到对资源的​​请求,因为JSONP用于跨域调用以从不同域中提取数据.

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