Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不带XMLHttpRequest()对象的Ajax方法_Php_Javascript_Ajax_Jquery - Fatal编程技术网

Php 不带XMLHttpRequest()对象的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方法有一个疑问。我习惯于使用ajax,就像我使用下面四行简单的代码一样:

$.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;