首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在jquery 1.5 ajax中使用新的url参数

是否在jquery 1.5 ajax中使用新的url参数
EN

Stack Overflow用户
提问于 2019-05-22 20:28:55
回答 1查看 17关注 0票数 0

我从http://api.jquery.com/jQuery.ajax/#jQuery-ajax-url-settings注意到,jquery v1.5及更高版本允许我们使用

代码语言:javascript
复制
jQuery.ajax( url [, settings ] )

或者只是

代码语言:javascript
复制
jQuery.ajax( [ settings ] )

并在settings.url中指定url。将url指定为单独的参数而不是settings对象的属性是否有任何优点(或缺点)?

EN

回答 1

Stack Overflow用户

发布于 2019-05-22 21:13:03

ajax模块针对1.5:https://blog.jquery.com/2011/01/31/jquery-15-released/进行了重写

在jquery $.ajax方法的顶部是这样的检查:

代码语言:javascript
复制
    // If url is an object, simulate pre-1.5 signature
    if ( typeof url === "object" ) {
        options = url;
        url = undefined;
    }

因此没有功能上的区别,因为它可以处理这两种方法中的任何一种(假设(url,settings)中的url是字符串)。

再往下看,它确实是:

代码语言:javascript
复制
s.url = url || s.url;

因此,如果两者都提供,则设置外的url将覆盖设置内的url。

这允许您创建一个通用的、可重用的ajax设置对象,以便与不同的urls一起使用。

这里的关键是进一步向下:

代码语言:javascript
复制
s = jQuery.ajaxSetup( {}, options )

这会将之前对$.ajaxSetup的任何调用应用到选项中,这意味着您可以在$.ajaxSetup中设置所有ajax设置,然后它们不需要传递给$.ajax,后者可以是一个简单的url,例如:

代码语言:javascript
复制
$.ajaxSetup({
    data: { html: "<b>ok</b>" }, 
    method: "POST"
});

// now call $.ajax with just the url
$.ajax("/echo/html")
    .done(function(h) { $("#o3").html(h) });

如果没有单独的字符串url参数,则需要将

代码语言:javascript
复制
$.ajax({ url: "..." })

这在这个fiddle中得到了演示(它使用fiddle的/echo/html进行ajax调用)

https://jsfiddle.net/2mnr8ok5/

将url指定为单独的参数而不是设置对象的属性是否有任何优点(或缺点)?

如果您正在传递一个设置对象,并且它有一个url,那么调用

代码语言:javascript
复制
$.ajax(settings.url, settings);

如果您使用的是$.ajaxSetup,并且只是更改了url,那么作为字符串传递将比创建一个只包含url的对象更方便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56256835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档