浏览器请求和Ajax请求之间的区别是什么



我正在使用JSF 1.2版本的JSF应用程序中工作。正如我们所知,JSF 1.2不支持ajax。在我的应用程序中,我需要使用值更改侦听器。但我没有得到预期的结果。有人建议我使用ajax标记,以便为值更改侦听器获得更好的结果。我已经看到值更改监听器也在ajax标签中工作(在JSF 2.X版本中)。

我想知道在普通表单请求和ajax请求中(在浏览器后面)发生了什么。请给我举一个这两种情况的例子。

AJAX请求很可能是根据您的服务器行为进行的浏览器请求。但主要的区别在于,当Header Request在一大堆HTTP头上执行时。像Google Chrome一样,将其标头请求指示为:

X-Requested-With:XMLHttpRequest每个浏览器都有自己的头请求格式,可以用不同的方式发送,但主要依赖于客户端。

但浏览器会发出常规请求,就像在window.location href="index.html"中一样,它会清除当前窗口并将服务器响应加载到窗口中。

当使用ajax处理请求时,当前窗口/文档不受影响,javascript代码可以检查请求的结果,并对这些结果执行它想要的操作(将HTML动态插入页面,解析JSON并使用它作为页面逻辑,解析XML等)。这取决于您在格式中处理的响应类型。"在服务器的新阶段,使用GET进行AJAX调用更为常见。这是因为当使用XMLHttpRequest浏览器时,POST是一个两步过程(先发送标头,然后发送数据)。这意味着GET请求的响应性更强,这是AJAX环境中所需要的!因为"AJAX"请求受同源策略的约束,使用GET而不是POST时存在有限的安全风险。使用GET从服务器"获取"信息,例如加载JavaScript文件(可以使用AJAX简写函数$.getScript())或加载JSON文件(可以用AJAX简写功能$.getJSON())。例如,使用GET作为默认值的jQuery AJAX函数:

$.get(), $.getScript(), $.getJSON(), .load()
$.ajax({
url: 'getTwitterFollowers.php',
type: 'GET',
data: 'twitterUsername=jquery4u',
success: function(data) {
//called when successful
$('#ajaxphp-results').html(data);
},
error: function(e) {
//called when there is an error
//console.log(e.message);
}
}); 

最新更新