使用POST方法传递参数

时间:2016-12-14 11:33:43

标签: javascript c# post

JavaScript我试图将一些变量传递给后端。我的代码如下。

我的要求:

我希望发送用户的姓名,电子邮件和说明,这些内容肯定会超过300个字符,并且不会符合GET请求。因此,如何使用这些参数发送POST请求。有人可以帮助我。

注意:我的后端位于C#

window.location.href = "/Account/New?fullname=". $data.fullName;

2 个答案:

答案 0 :(得分:2)

使用window.location,您将通过网址发送参数 - 这意味着它们是通过GET方法发送的,而不是POST发送的。

要使用POST方法将数据发送到服务器,您必须通过使用method="post"定义的表单发送数据,或者,如果您不想创建表单元素,AJAX XMLHttpRequest请求。

我建议,为了学习和简单,从一个简单的表单开始,例如:

<form action="your-page-after-submittion.html" method="post">
   <p>Your full name: <input type="text" name="fullname" /><br />
   E-mail: <input type="text" name="email" /></p>

   <p>Your message:<br />
   <textarea name="message" rows="10" cols="40"></textarea></p>

   <p><input type="submit" value="Send the from"></p>
</form>

或者,如果您需要AJAX请求,可以使用以下命令:

//prepare your data values to be sent in the request
var fullname = document.getElementById("fullname").value;
var email = document.getElementById("email").value;
var message = document.getElementById("message").value;

//create an XMLHttpRequest                  
var xmlhttp;

if (window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

//submit the request to your desired page (user will not be redirected, as this is AJAX request                             
xmlhttp.open("POST","your-page-after-submittion.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fullname="+fullname+"&email="+email+"&message="+message);

答案 1 :(得分:-1)

您可以通过以下方式创建表单并通过JavaScript提交:

function submitFullName(fullName, destination)
{

    var form = document.createElement("form");
    var input1 = document.createElement("input"); 

    form.method = "POST";
    form.action = destination;   

    input1.value=fullName;
    input1.name="fullname";
    form.appendChild(input1);  

    document.body.appendChild(form);

    form.submit();
}

@VladimirM提出了一个很好的观点,您可以使用直接的XMLHttpRequest来执行POST而不是创建表单对象:

function submitFullName(fullName, destination)
{

    var xhr = new XMLHttpRequest();
    xhr.open("POST", destination, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send("fullname="+fullName);

}