通过ajax发送javascript数组而不使用jquery

时间:2016-07-29 17:54:19

标签: javascript php arrays ajax

我有一个javascript数组,其值为“correct”,“wrong”。 我想使用ajax将此数组发送到我的php文件。但我不熟悉如何。 这就是我到目前为止所尝试的......我想在没有jquery的情况下这样做。

var hold=[];
    for(t = 0;t <= 10; t++){ 
    answers_Arr = document.getElementsByName("question"+t);
    for (k = 0; k < answers_Arr.length; k++){
        if(answers_Arr[k].checked){
            hold[t] = answers_Arr[k].value;
            //document.getElementById("test"+t).innerHTML = "Value: "+ hold[t];
            break;
        }else{
            hold[t] = "no";
            continue;

        }
    }
}
var jsonString = JSON.stringify(hold);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
    if (xmlhttp.readyState==4  &&  xmlhttp.status==200)
    {
    document.getElementById("test1").innerHTML= xmlhttp.responseText;
    }
}

xmlhttp.open("GET","result.php?res="+hold[],true);
xmlhttp.send();

}

2 个答案:

答案 0 :(得分:2)

以下是通过AJAX发送带有POST的json字符串的示例:

var jsonString = JSON.stringify(hold);
var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
    //
}

xmlhttp.open("POST","result.php",true);
xmlhttp.setRequestHeader("Content-type", "application/json");
xmlhttp.send(jsonString);

避免使用GET方法发送json字符串,因为如果请求字符串太长,浏览器会抛出错误。

现在,在您的PHP脚本中,您将获得$ _POST

中的所有数据

编辑:在某些版本的php上看起来像其他Content-type的请求,如application/json,$ _POST的值为空。要解决此问题,您可以执行以下操作:

$_POST = json_decode(file_get_contents('php://input'));

答案 1 :(得分:0)

替换此行

public class CustomFileReceiver extends FileMessageReceiver {

public CustomFileReceiver(org.mule.api.transport.Connector connector, FlowConstruct flowConstruct, InboundEndpoint endpoint,
        String readDir, String moveDir, String moveToPattern, long frequency) throws CreateException {
    super(connector, flowConstruct, endpoint, readDir, moveDir, moveToPattern, frequency);
}

@Override
public void poll() {
    // perform your special poll

}

xmlhttp.open("GET","result.php?res="+hold[],true);