0

我正在开发一个网页,目的是从表单输入元素以 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);

检查服务器日志后,没有发布过:/

4

1 回答 1

0

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

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

<form id="input" onsubmit="snifForm(); return false;"> 
于 2013-06-03T15:25:05.743 回答