JSONRequest.post无法正常运行

时间:2013-06-03 14:32:57

标签: javascript json http-post

我正在开发一个网页,目的是以JSON格式从表单输入元素执行http POST。在正确形成要发送的JSON元素的同时,永远不会执行请求。这是我一直在使用的代码。 的表格

<form id="input" action="javascript:snifForm()" >



                   User ID:
                   <input type="text" name="userId" id="userId" required>
                   Name:
                   <input type="text" name="name" id="name" required>


        <div class="form-submit"><input type="submit" value="Submit" color="#ffffff" >       </div></p>
        </form>

Javascript (导入JSON.js,JSONRequest.js和JSONRequestError.js)

  <script type="text/javascript">
       var requestNumber;
       function snifForm()
       {
           var a1=document.getElementById("userId").value;
           var a2=document.getElementById("name").value;


           var toSend= {interactions: {id_user:a1, id_name:a2}};

           var jToSend=JSON.stringify(toSend);

           requestNumber = JSONRequest.post(
    "http://someurl.com",
   jToSend,
    function (requestNumber, value, exception) {
        if (value) {
            processResponse(value);
            alert(value);
        } else {
            processError(exception);

        }
    }
);

   alert(requestNumber);
       }
   </script>

我也尝试了更经典的形式:

var xmlhttp = new XMLHttpRequest();
        var out;

        xmlhttp.onreadystatechange = function() {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                out = xmlhttp.responseText;
                alert(out);
            }

            else alert('nothing');
        }
        xmlhttp.open("POST", "the_same_url", true);
        xmlhttp.setRequestHeader("Content-type", "application/json");
        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.send(jToSend);

检查服务器日志后,没有发布任何帖子:/

1 个答案:

答案 0 :(得分:0)

您应该将事件附加到表单的提交操作,并且您需要确保取消提交操作。

我不会将事件直接添加到表单中,但它是

<form id="input" onsubmit="snifForm(); return false;">