如何在没有Post方法或任何表单的情况下将信息作为Json数据发送到服务器

时间:2015-01-09 10:01:41

标签: javascript json

我被赋予了与Json合作将任务发送到服务器而不实际使用“表单”或“发布”的任务,以下是我和我的大四学生之间的对话:

高级:

  

仅将数据发送到服务器而不提交表单   在javascript中

 myJsonObject.Username = document.getElementById('txtUsername').value;
  

这将在单击“保存”按钮时完成   在这种情况下,我们不使用表单元素   我们不使用提交按钮   只是一个简单的保存按钮

 onclick="saveUser()"
 function saveUser(){
 var userInfoJson = { };
 userInfoJson.Username = document.getElementById('txtUsername').value;
  

......等等   只是玩json

我:

<form name="form" method="post" onsubmit="saveUser()">
  它会是这样的吗?

高级:

  

**不要使用表单标签   不要使用提交按钮

:
one more thing will it have <input type="text"> ?

高级:

not sure what u mean
u can use any kind of html, i don't mind
you need to show me some coding of json and that happens in .JS file
 or in <script type="text\javascript" tag
html can be used to integrate ur user input
i don't mind u use any kind of html whether beautiful or not
I MEAN JSON here in this thread
I wan't json... json, json, json
don't bring the whole world here... talk about json
json only

那么如何在没有形式的情况下做到这一点?

1 个答案:

答案 0 :(得分:2)

我不明白不使用表单或提交按钮的原因,这似乎是反直觉的,可能不是有效的标记。

然而,为了实现这一点,您可以绑定到普通按钮......

http://jsfiddle.net/Labdr6pw/

<input type="text" id="txtUsername" name="username" />
<button id="submitButton" type="button">Save</button>
 
var submitButton = document.getElementById('submitButton'),
    usernameInput = document.getElementById('txtUsername'),
    userInfoJson = {};

userInfoJson.Username = usernameInput.value;

submitButton.addEventListener('click', function(){
    var request = new XMLHttpRequest(); 

    request.open("POST", "webservice", true);
    request.onreadystatechange = function() {
        if (request.readyState != 4 || request.status != 200) return; 
        console.log(request.responseText);
    };
    request.send(JSON.stringify(userInfoJson));
});