2011-06-23 179 views
3

我对jQuery AJAX有几个问题。关于jQuery的问题AJAX

  1. 这是令人困惑的理解为什么有像负载(多种方法),获得(),后()..就是把差异只喜欢$阿贾克斯是写作的一般方法和其他基于正在具体类型..?

  2. 我不会彻底地理解完成,成功之间的差异。他们是否相似或有什么差异,以什么时候应该使用?

  3. 从HTML响应中的脚本执行方面来说,jQuery AJAX会自动处理它还是需要指定类似eval()的东西?与正常的AJAX处理相比,这种行为的差异又有多大?

  4. 关于beforeSend,它是否类似于ajaxSetup,一般来说,可用的许多共用属性是什么?

编辑

  1. 也就是写为回调负载().. e.g的代码。负载(URL,函数(){}); 与成功提到的相同或ajaxSuccess ..我的意思是说回调函数代码不会与成功或ajaxSuccess同时执行?

Thnak you。

回答

11

1)您需要了解HTTP。 getpost分别发出“GET”和“POST”请求,这对于构建RESTful服务非常有用。编辑:我实际上没有看到ajax对象上的get和post方法;你传递一个'type'参数来指定你想要使用的HTTP方法。

2)success成功时触发,即响应是否返回200. complete在完成其他操作后始终触发。

3)理想情况下,你的服务器将返回json。如果您将Ajax调用配置为期望json,那么它会为您解析它。

4)文档非常清晰,beforeSend在实际的底层ajax请求被调用之前被触发。文档中提到了“使用它来设置自定义标题等”。

+0

所以对于1,差异主要是在语法方面,如果我们想要制作一个特定的东西,比如get,post ...对于4,什么是ajaxSetup主要用于? – testndtv

+0

@hmthr正如它在这里所说的:http://api.jquery.com/jQuery.ajaxSetup设置是设置默认值。所以,当你加载应用程序来设置合理的默认值时,你可以使用ajaxSetup。例如,你可以设置dataType ='json',这样每次你做一个ajax调用时你都不需要指定它。 – hvgotcodes

+0

所以说ajaxSetup是一种全局设置,而beforeSend特定于那个AJAX请求?那是对的吗? – testndtv

0
  1. 他们只是“速记” 什么都可以做,功能 完全相同的用$。阿贾克斯(),该 区别只是语法每个请求完成后
  2. complete被解雇了,而如果success只大火没有任何错误(一个成功一个
  3. 无论你想有你在做HTTP响应做制作功能(数据){dostuff(数据);}在success回调区域
  4. beforeSend被称为右之前Ajax请求被触发

Documentation

+0

请同时看到我编辑的最后一个问题.. – testndtv