使用ajax将JSON发送到Web服务

时间:2012-09-30 07:48:03

标签: javascript ajax

我应该在下面的代码中进行哪些修改,以便以json字符串的形式将多个值从表单发布到我的Web服务?

我试过这个 -

  <script>

    function ajaxRequest(){
        var  xmlhttp = new XMLHttpRequest();
             xmlhttp.onreadystatechange = function() {
              if(xmlhttp.readyState == 4){
                 alert(xmlhttp.readyState);
                }
                };
                var namevalue=encodeURIComponent(document.getElementById("name").value);
              //  var fname=encodeURIComponent(document.getElementById("lastname"));
                var parameters="name="+namevalue
                var url="http://localhost:41191/test/resources/postservice";
            xmlhttp.open("POST",url,true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
            xmlhttp.send(parameters)

   }
</script>

同样使用 -

    function ajaxRequest(){
        var  xmlhttp = new XMLHttpRequest();
             xmlhttp.onreadystatechange = function() {
              if(xmlhttp.readyState == 4){
                 alert(xmlhttp.readyState);
                }
                };

var parameters = { "name": $('#name').val(), "firstname": $('#fname').val() };
                var url = 'http://localhost:41191/test/resources/storeincompleteform';
                xmlhttp.open('POST', url, true);
                xmlhttp.setRequestHeader('Content-type', 'application/json')
                xmlhttp.send(JSON.stringify(parameters)); }
 </script>

1 个答案:

答案 0 :(得分:3)

var parameters = { param1: 'value1', param2: 'value2' };
var url = 'http://localhost:41191/test/resources/postservice';
xmlhttp.open('POST', url, true);
xmlhttp.setRequestHeader('Content-type', 'application/json')
xmlhttp.send(JSON.stringify(parameters));

这将在POST请求正文中发送以下数据:

{"name":"value1","name2":"value2"}

JSON.stringify方法本身内置于现代浏览器中,但如果您想支持某些旧版浏览器,则可以引用json2.js脚本。