微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript Ajax保存结果

我有问题我正在尝试自己做ajax,但是我无法保存来自ajax调用的结果.我希望它像jQuery一样执行,或类似.
因此,我有一个名为ajax的函数,带有I参数,该参数是一个对象,其属性包括方法,URL,异步,数据和成功…
当我调用ajax函数时,除了成功之外,我没有任何问题.我希望它像jQuery(不要问我为什么不想使用jQ).所以我要这个

ajax({
    method: "POST",
    url: "ajax.PHP",
    async: false,
    data: "name=something",
    success: function(result) {
         console.log(result);
    }
});

我在将结果保存到ajax函数定义中的参数时遇到问题,在这里只使用它即可.

这是ajax.PHP

<?PHP
  $name = "The input is: " . $_POST['name'];
  return $name;
?>

这是ajax函数的定义:

var ajax = function (arg) {
    if (typeof arg.method !== "undefined" && typeof arg.url !== "undefined" && typeof arg.async !== "undefined" 
        && typeof arg.success !== "undefined" && typeof arg.data !== "undefined") {

        var xmlhttp, i = 0,
        versions = [
            "MSXML2.XmlHttp.6.0",
            "MSXML2.XmlHttp.5.0",   
            "MSXML2.XmlHttp.4.0",  
            "MSXML2.XmlHttp.3.0",   
            "MSXML2.XmlHttp.2.0",  
            "Microsoft.XmlHttp"
        ];

        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            for ( ; i < versions.length; i++) {
                try {
                    xmlhttp = new ActiveXObject(versions[i]); break;
                } catch (e) { }
            }
        }

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == XMLHttpRequest.DONE) {
                if (xmlhttp.status == 200) {
                    /* ////////////////////////////////////////////
                                  HERE I HAVE PROBLEM
                     /////////////////////////////////////////////*/

                     // this is obvIoUsly wrong (I kNow it is)
                     arg.success = function (something) {
                           something = xmlhttp.responseText;
                     }
                } else if (xmlhttp.status == 400) {
                    console.log("There was an error 400");
                } else {
                    console.log("UNSUCCESSFUL");
                }
            }
        }

        xmlhttp.open(arg.method, arg.url, arg.async);
        xmlhttp.send(arg.data);
        console.log("Method: " + arg.method + "\nURL: " + arg.url + "\nAsync: " + arg.async + "\nData: " + arg.data + "\n");
    }
};

如何以我可以在ajax函数调用中使用参数的方式将xmlhttp.responseText保存到arg.success函数参数?我应该使用回调吗?

编辑:谢谢,它有效,但是,它只打印“输入是:”.我该如何解决

解决方法:

您要调用方法,而不要设置它.

arg.success(xmlhttp.responseText);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐