JQuery send string как параметры POST

Я хочу отправить строку как параметр ajax Post.

Следующий код:

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

Не работает. Почему?

Ответ 1

Попробуйте вот так:

$.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);
    }
});

Ответ 2

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

Ответ 3

Я вижу, что они не поняли ваш вопрос. Ответ: добавьте "традиционный" параметр в ваш вызов ajax следующим образом:

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

И он будет работать с параметрами PASSED AS STRING.

Ответ 4

Для аналогичного приложения мне пришлось обернуть мой объект data с помощью JSON.stringify() следующим образом:

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

API работал с клиентом REST, но не мог заставить его работать с jquery ajax в браузере. Это было решение.

Ответ 5

Не уверен, что это все еще актуально. Просто для будущих читателей. Если вы действительно хотите передать свои параметры как часть URL-адреса, вы должны, вероятно, использовать jQuery.param().

Ответ 6

Не прямой ответ на ваш вопрос.. Но следующий - единственный синтаксис, который работал у меня -

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

И имя параметра совпадает с аргументом метода сервера

Ответ 7

Я столкнулся с проблемой передачи строкового значения в строковые параметры в 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 - две строковые переменные, и вы можете передать любое строковое значение соответствующим строковым параметрам в веб-методе.

Ответ 8

jQuery.ajax({тип: "POST", URL: "WebForm1.aspx/getnames", данные: '{"fullname2": "+ empName +'"} ', contentType: "application/json; charset = utf-8 ", dataType:" json ", success: function (data) {alert (data.d);}, error: function (error) {alert (" Произошла ошибка: "+ error.d);}});

Ответ 9

Я также столкнулся с этой проблемой. Но у меня есть решение, и оно сработало отлично. Мне нужно было передать параметры, которые уже произведены функцией JavaScript. Так что ниже код работает для меня. Я использовал ColdFusion для бэкэнда. Я просто напрямую использовал параметры в качестве переменной.

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