使用本机javascript ajax发送数据

时间:2015-02-07 17:37:43

标签: javascript ajax

我使用原生javascript ajax但是当我查看发布的内容时,它只是简单地说[object Object],因此尝试捕获php文件中的$_REQUEST['stringSent']无效

以下是我尝试使用dataPost('test')

进行调用的内容
function dataPost(dataToSend) {
  var params = { "stringSent": dataToSend };
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status === 200) {
      if (typeof success === "function") {
        alert(xmlhttp.responseText);
        success(xmlhttp.responseText);
      }
    }else if(typeof error === "function" && (xmlhttp.status > 299 || xmlhttp.status < 200)){
      error();    
    }
  }
  xmlhttp.open("POST", 'dataCapture.php', true);
  xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
  //xmlhttp.send(JSON.stringify(data)); // not needed as I'm sending JSON anyway
  xmlhttp.send(params);
}

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

评论此行:

// xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');

或将其更改为:

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('stringSent=' + dataToSend);

答案 1 :(得分:-2)

使用Jquery Ajax。

$.ajax({
url: 'dataCapture.php',
dataType: 'text',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
data: params ,
success: function( data, textStatus, jQxhr ){ $('#response pre').html( data    ); },
error: function( jqXhr, textStatus, errorThrown ){ console.log( errorThrown ); }
});