jQuery发送字符串作为POST参数

时间:2011-02-18 21:44:35

标签: ajax post jquery

我想将字符串作为ajax Post参数发送。

以下代码:

$.ajax({
   type: "POST",
   url: "http://nakolesah.ru/",
   data: 'foo=bar&ca$libri=no$libri',
   success: function(msg){
     alert('wow'+msg);
   }
});

不工作。为什么呢?

9 个答案:

答案 0 :(得分:166)

试试这样:

$.ajax({
    type: 'POST',
    // make sure you respect the same origin policy with this url:
    // http://en.wikipedia.org/wiki/Same_origin_policy
    url: 'http://nakolesah.ru/',
    data: { 
        'foo': 'bar', 
        'ca$libri': 'no$libri' // <-- the $ sign in the parameter name seems unusual, I would avoid it
    },
    success: function(msg){
        alert('wow' + msg);
    }
});

答案 1 :(得分:35)

$.ajax({
    type: 'POST',    
    url:'http://nakolesah.ru/',
    data:'foo='+ bar+'&calibri='+ nolibri,
    success: function(msg){
        alert('wow' + msg);
    }
});

答案 2 :(得分:12)

我发现他们不明白你的问题。 答案是:添加&#34;传统&#34;你的ajax调用的参数如下:

$.ajax({
  traditional: true,
  type: "POST",
  url: url,
  data: custom ,
  success: ok,
 dataType: "json"
});

它将与参数PASSED A STRING一起使用。

答案 3 :(得分:8)

对于类似的应用程序,我必须用data这样包裹JSON.stringify()对象:

data: JSON.stringify({ 
  'foo': 'bar', 
  'ca$libri': 'no$libri'
}),

API正在使用REST客户端,但无法在浏览器中使用jquery ajax。 stringify是解决方案。

答案 4 :(得分:4)

不确定这是否仍然是实际的...仅供未来的读者阅读。 如果您真正想要的是将参数作为URL的一部分传递,则应该使用jQuery.param()

答案 5 :(得分:1)

不是您问题的直接答案..但以下是过去常用于我的唯一语法 -

data: '{"winNumber": "' + win + '"}',

参数名称与服务器方法的参数匹配

答案 6 :(得分:0)

我在将字符串值传递给Ajax中的字符串参数时遇到了问题。经过这么多谷歌搜索,我提出了一个自定义解决方案如下。

var bar = 'xyz';
var calibri = 'no$libri';

$.ajax({
   type: "POST",
   dataType: "json",
   contentType: "application/json; charset=utf-8",
   url: "http://nakolesah.ru/",
   data: '{ foo: \'' + bar + '\', zoo: \'' + calibri + '\'}',
   success: function(msg){
       alert('wow'+msg);
   },
});

此处, bar calibri 是两个字符串变量,您可以将任何字符串值传递给Web方法中的相应字符串参数。

答案 7 :(得分:0)

我也遇到了这个确切的问题。但是我有一个解决方案,并且效果很好。我需要传递已经由javascript函数产生的参数。所以下面的代码为我工作。我将 ColdFusion 用于后端。我只是直接将参数用作变量。

                    $.ajax({
                    url: "https://myexampleurl.com/myactionfile.cfm",
                    type: "POST",
                    data : {paramert1: variable1,parameter2: variable2},
                    success: function(data){
                        console.log(data);                              
                    } )};

答案 8 :(得分:0)

取而代之的是将 POST 请求编码为字符串并传递给 data 参数,

var requestData = "Param1=" + encodeURIComponent(jsParam1) + "&Param2="+ encodeURIComponent(jsParam2);

var request = $.ajax({
                            url: page + "?" + getVars,
                            method: "POST",
                            data: requestData,
                            dataType: "html",
                            contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
                    });