如果我想做的只是向带有 POST 数据的 PHP 处理器提交表单并获得结果,那么有什么理由使用 ajax 方法而不是 jQuery 加载方法吗?
使用 Ajax 需要一堆代码,而不是在 jQuery 中的一行上非常简单的代码,如下所示:
$("#myDIV").load("myProcessor.php", {field1: target.value});
嗯,也许这只适用于一个领域?对不起,刚刚回到JS。
$(element).load(...)
会自动将服务器响应作为html插入到选定的元素中(.load()的jQuery文档)。这可能会导致您的服务器直接向用户公开有关请求的信息,这可能不是您要执行的操作。
$.ajax()
还允许对请求期间发生的情况进行非常精细的控制。您可以准确地拦截异常,并在请求成功完成时生成回调。这些都是使用$.ajax()
而不是$(element).load(...)
的原因。但是,如果您唯一关心的是发送 POST 标头中的数据并使用响应,那么将 $.post
与回调函数一起使用可能是最简单的方法。http://api.jquery.com/jQuery.post/
.load
方法大致相当于 $.get(url, data,成功)(来源)。.get
方法是简写的Ajax函数(源)。
对于简单的 ajax 调用,.load 是合适的。如果要处理特殊参数,请使用.ajax
。
PS:如果你不想要像jQuery这样的胖框架,请看这里:http://microjs.com/#ajax
来自 jQuery 网站关于加载
此方法是从服务器获取数据的最简单方法。是的 大致相当于 $.get(URL, data, success),除了它是一个 方法而不是全局函数,它有一个隐式回调 功能。当检测到成功的响应时(即当文本状态 是"成功"或"未修改"),.load() 设置的 HTML 内容 将元素与返回的数据匹配。
您可以在 StackOverflow 上读取加载 ajax 之间的差异。
但是,load
不适用于使用post
方法提交表单。POST
和GET
都是不同的方法,工作方式不同,使用GET
该方法提交的数据将在$_GET
数组中可用,但在$_POST
中不可用。