使用jquery进行POST,如何正确提供’data’参数?

前端之家收集整理的这篇文章主要介绍了使用jquery进行POST,如何正确提供’data’参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想做一个ajax调用作为一个POST,它将去我的servlet.我想发送参数化数据,如下所示:
var mydata = 'param0=some_text&param1=some_more_text';

我提供这个作为我的jquery ajax()调用的’data’参数.所以这应该插在POST的正文里呢? (我的意思是,没有附加到我的’mysite / save’url?):

$.ajax({
    url: 'mysite/save',type: 'POST',data: mydata
});

它似乎正常工作.在我的servlet中,我只是倾销所有收到的参数,我看到他们都很好地发现:

private void printParams(HttpServletRequest req) {
    Enumeration paramNames = req.getParameterNames();
    while (paramNames.hasMoreElements()) { 
        // print each param key/val here.
    }
}

还有,我应该在使用前手动编码我的数据字符串,对吧?喜欢:

var mydata = 'param0=' + urlencode('hi there!');
mydata += '&param1=' + urlencode('blah blah');
mydata += '%param2=' + urlencode('we get it');

谢谢!

解决方法

更简单的方法是将data属性提供为对象,如下所示:
$.ajax({
  url: 'mysite/save',data: { param0:'hi there!',param1:'blah blah',param2:'we get it' }
});

否则,你应该对它进行编码,因为任何与&例如,会非常快地拧紧东西.提供它作为一个对象是一个更清晰/更简单的方法,但在我看来,反正.

您还可以将其放置,并从其他位置内联检索属性,如下所示:

$.ajax({
  url: 'mysite/save',data: { 
          param0: $('#textBox0').val(),param1: $('#textBox1').val(),param2: $('#textBox2').val()
        }
});

编辑:如果您好奇jQuery如何在内部进行此编码,则使用$.param()(您也可以直接使用它)将对象编码为一个字符串,称为here和内含的here.

原文链接:https://www.f2er.com/jquery/180495.html

猜你在找的jQuery相关文章