Php 不带XMLHttpRequest()对象的Ajax方法
我对Ajax方法有一个疑问。我习惯于使用ajax,就像我使用下面四行简单的代码一样:Php 不带XMLHttpRequest()对象的Ajax方法,php,javascript,ajax,jquery,Php,Javascript,Ajax,Jquery,我对Ajax方法有一个疑问。我习惯于使用ajax,就像我使用下面四行简单的代码一样: $.ajax({ type: "POST", url: "/application/group/addMembers", data: {memberIds: selectedMembers, groupId:<?php echo $this->groupId; ?>}, success: (func
$.ajax({
type: "POST",
url: "/application/group/addMembers",
data: {memberIds: selectedMembers, groupId:<?php echo $this->groupId; ?>},
success: (function(msg) {
// alert(msg);
var ans = JSON.parse(msg);
alert(ans['message']); // msg is array returned from php script in json
})
});
$.ajax({
类型:“POST”,
url:“/application/group/addMembers”,
数据:{MemberId:selectedMembers,groupId:},
成功:(功能(msg){
//警报(msg);
var ans=JSON.parse(msg);
警报(ans['message']);//msg是从php脚本返回的json数组
})
});
现在,当我在不同的网站或教程上学习更多内容时。他们通过创建XMLHTMLREQUEST()来实现ajax,XMLHTMLREQUEST()用于与服务器交换信息。还有一些东西,比如打开、发送函数
但是我没有创建XMLHTMLREQUEST对象,我的ajax仍然可以正常工作。我只是想知道区别。当我不使用XMLHTMLREQUEST对象与服务器通信时,我是否丢失了一些东西。我确实查过了。但是我仍然需要一个答案。不同的浏览器以不同的方式实现AJAX(实际上只有IE)。jQuery处理所有跨浏览器实现差异,并在后台创建XHR对象 :
四个简单行与XMLHttpRequest()之间的区别在于语言本身,其中XMLHttpRequest()是纯的javascript,而上面的代码是jquery。
事实上,您可以同时忽略和使用它们&因为它们是更高级别的替代品,更易于使用。但是,如果需要不太常见的选项,$.ajax()可以更灵活地使用。jQuery可以为您完成所有这些。
XMLHttpRequest
是本机纯javascript。jQuery对此进行了抽象,并为您提供了更简单的语法。但是jQuery确实在幕后使用了XMLHttpRequest
。您的代码只是在幕后创建XMLHttpRequest。这意味着,当我们自己创建XMLHttpRequest()而不是通过jQuery实现时,可能会出现跨浏览器差异问题。“我说得对吗?”谢拉扎利说,是的。如果您不熟悉AJAX和跨浏览器开发,则可能会出现问题。除非您非常担心加载时间,否则应该在应用程序中使用jQuery之类的库。即使加载时间是一个问题,使用像谷歌这样的CDN也应该解决这个问题。
jQuery.ajaxSettings.xhr = function() {
try {
return new XMLHttpRequest();
} catch( e ) {}
};
var xhrSupported = jQuery.ajaxSettings.xhr(),
xhrSuccessStatus = {
// file protocol always yields status code 0, assume 200
0: 200,
// Support: IE9
// #1450: sometimes IE returns 1223 when it should be 204
1223: 204
},
// Support: IE9
// We need to keep track of outbound xhr and abort them manually
// because IE is not smart enough to do it all by itself
xhrId = 0,
xhrCallbacks = {};
if ( window.ActiveXObject ) {
jQuery( window ).on( "unload", function() {
for( var key in xhrCallbacks ) {
xhrCallbacks[ key ]();
}
xhrCallbacks = undefined;
});
}
jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
jQuery.support.ajax = xhrSupported = !!xhrSupported;