0

嗨,我想使用 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 客户端中传递参数,那么它会给出正确的响应。

4

2 回答 2

0

我在 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 方法则不同。这完全令人困惑。

于 2012-07-08T13:37:12.757 回答
0

看到您想使用 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();
}
于 2012-07-08T11:34:33.690 回答