javascript - 使用javascript ajax发送数组

标签 javascript ajax

在 jquery 中我可以做到这一点

myAray=['abc', '123', 'more'];
$.post('myscript.php', {data:myAray}, function(data){
    alert(data);
});

如何使用纯 javascript 做同样的事情?我想使用 POST 方法将数组发送到我的 php 脚本。我找到了很多示例,但所有示例都与 jquery 相关。

提前致谢。

最佳答案

您将不得不使用 XMLHttpRequest 并自行序列化数组:

function ajax(myArray) {

    var xmlHTTP;

    if (window.XMLHttpRequest) { 
        xmlHTTP = new XMLHttpRequest();
    } else { 
        xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4 && xmlHTTP.status == 200) {
            // do whatever it is you want to do
        }
    }

    //Serialize the data
    var queryString = "";
    for(var i = 0; i < myArray.length; i++) {
        queryString += "myArray=" + myArray[i];

        //Append an & except after the last element
        if(i < myArray.length - 1) {
           queryString += "&";
        }
    }

    xmlHTTP.open("POST", "www.myurl.com", true);
    xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
    xmlHTTP.send(queryString);
}

关于javascript - 使用javascript ajax发送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187564/

相关文章:

javascript - 如何清除javascript中textarea的值?

javascript - jquery 选择器查找没有 id 或类的 div

javascript - 将自定义图标添加到谷歌地图附近的地方第 2 部分

javascript - 当我获得所有实例化部件后,如何在 Angular SPA 中重绘 ITHit Ajax 文件浏览器?

Javascript:innerHTML 对象未填充父对象

javascript - 如何清除 AJAX GET 调用的 HTTP header ?

javascript - 扩展 JavaScript String 和 JQuery.ajax

jquery - 如何使用 jquery mobile 或 jquery 在我的 html 页面内容中显示页面加载微调器

javascript - 如何处理大量 AJAX 请求(> 1000)

javascript - 用于从事件窗口中提取和存储所选文本的浏览器书签