[英]post method data is not sending correctly in jquery mobile
嗨,我想使用post方法将数据发送到服务器,但不使用ajax来发送数据,如下所示:
function handleLogin()
{
var form = $("#loginForm");
var u = $("#username", form).val();
var p = $("#password", form).val();
var d = $("#dob", form).val();
if(u != '' && p!= '')
{
var finalStr = u+encodeURIComponent("|^")+p+encodeURIComponent("|^")+encodeURIComponent("|^")+"X"+encodeURIComponent("|^")+d+encodeURIComponent("|^")+"1.0"+encodeURIComponent("|^|$");
var encodedURL = encodeURI(intranetUrl+"customer/Ri_logon5.asp?requestString=");
var parameters = decodeURIComponent(finalStr);
post_to_url(encodedURL,parameters);
}
else
{
alert("You must enter a username and password", function() {});
$("#submitButton").removeAttr("disabled");
}
}
而我的post_to_url函数是:
function post_to_url(url, params) {
var form = document.createElement('form');
form.action = url;
form.method = 'POST';
for (var i in params)
{
if (params.hasOwnProperty(i))
{
var input = document.createElement('input');
input.type = 'hidden';
input.name = i;
input.value = params[i];
form.appendChild(input);
}
}
form.submit();
}
但是从服务器我得到的响应不是当您传递错误的参数时出现的对象。 但是,当我用ajax 10传递相同的参数时,它可以很好地工作。 为什么会这样呢?
我的网址格式是:http://myDomain/Ri_logon5.asp?requestString =
并且参数格式如下:manish | ^ info1234 | ^ | ^ X | ^ 11111985 | ^ 1.0 | ^ | $
如果我输入url并在rest client中传递参数,那么它会给出正确的响应。
好像要使用POST而不是GET一样,您应该通过传递多个post值来更改您的代码。 您只想发布requestString。 另外,您应该将URL更改为:myDomain / Ri_logon5.asp
function post_to_url(url, params) {
var form = document.createElement('form');
form.action = url;
form.method = 'POST';
// Change this to fetch the arguments and build the string accordingly
var postString = 'manish|^info1234|^|^X|^11111985|^1.0|^|$';
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'requestString';
input.value = postString
form.appendChild(input);
form.submit();
}
我在ajax中使用了以下mwthod,效果很好:
$.ajax({
type: "POST",
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
url: clientDetailURL,
data: finalclientDetailParam
}).done(function( msg1 )
{
var clientDetailResponse = msg1;
console.log("Client detail response is:"+clientDetailResponse);
});
这里的clientDetailURL是:http://myDomain/Ri_logon5.asp?requestString =和finalClientDetailParam是:manish | ^ info1234 | ^ | ^ X | ^ 11111985 | ^ 1.0 | ^ | $
对于这个ajax,它可以正常工作,但对于没有ajax的POST方法,则不能正常工作。 这完全令人困惑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.