我想将字符串作为ajax Post参数发送。
以下代码:
$.ajax({
type: "POST",
url: "http://nakolesah.ru/",
data: 'foo=bar&ca$libri=no$libri',
success: function(msg){
alert('wow'+msg);
}
});
不工作。为什么呢?
答案 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'
});