Câu hỏi jQuery gửi chuỗi dưới dạng tham số POST


Tôi muốn gửi một chuỗi như một tham số Post ajax.

Mã sau:

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

Không hoạt động. Tại sao?


76
2018-02-18 21:44


gốc


Tôi thấy rằng bạn là một nhà phát triển PHP và tôi cũng thấy rằng bạn đã làm điều này: ca$libri=no$libri. Chỉ cần kiểm tra để chắc chắn ở đây ... bạn có chắc chắn rằng bạn không vô tình cố gắng sử dụng các công trình PHP mà JS nên được? Nếu bạn muốn bao gồm giá trị của $libri biến thành chuỗi này, hãy thử điều này: 'foo=bar&ca' + $libri + '=no' + $libri. - treeface
nono :) tôi hiểu tất cả những khoảnh khắc tạo ra js bởi php :) đó là tên của biến ajax trong APS. Tôi tạo trình phân tích cú pháp phân tích cú pháp một số trang web bằng ajax. Và bây giờ tôi có lý do tại sao lỗi. Đó là truy vấn crossdomain coz. Tôi phải tạo truy vấn đầu tiên cho máy chủ của mình :) - Mirgorod


Các câu trả lời:


Hãy thử như thế này:

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

155
2018-02-18 21:46



không phải là dữ liệu: {foo: 'bar'}, không có dấu nháy đơn '? - Marius Stănescu
@MariusStanescu, cả hai đều tương đương cú pháp javascript tương đương. - Darin Dimitrov
cũng khá chắc chắn $ trong ca $ libri là hoàn toàn tốt - Michael Crook
Không trả lời câu hỏi liên quan đến việc đăng bài dưới dạng chuỗi: (xem câu trả lời bên dưới). - Andrew
Điều này làm việc nhưng điều này không: foo: 'bar'. Tôi đã dành 2 ngày vô nghĩa tôi đã không thêm các dấu hiệu dây cho cả hai bên !!! - eugen sunic


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

29
2017-12-15 10:53



đây là lý do tại sao tôi đến đây, để tìm hiểu cách gửi dữ liệu $ .post dưới dạng một chuỗi. câu trả lời được chấp nhận không giúp tôi với điều đó. cảm ơn bạn. - chiliNUT
Đồng ý, tôi đã có một tình huống cũng như nơi một chuỗi được yêu cầu cho một khuôn khổ tôi đã phát triển, câu trả lời tốt. Trong tình huống của tôi, tôi đã có thể thực hiện công việc này bằng cách đặt chuỗi vào một biến bên cạnh dữ liệu :, định dạng của chuỗi của tôi là '? Var = value & var2 = value2' - Joseph Astrahan


Tôi thấy rằng họ không hiểu câu hỏi của bạn. Câu trả lời là: thêm tham số "truyền thống" vào cuộc gọi ajax của bạn như sau:

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

Và nó sẽ làm việc với các tham số PASSED AS A STRING.


9
2017-11-18 17:04



Cảm ơn! Điều này tiết kiệm ngày của tôi! - Dat TT
Cám ơn rất nhiều. Những công việc này! - farhany


Đối với một ứng dụng tương tự, tôi phải bọc data đối tượng với JSON.stringify() như thế này:

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

API đã làm việc với một máy khách REST nhưng không thể làm cho nó hoạt động với jquery ajax trong trình duyệt. stringify là giải pháp.


8
2017-10-20 15:36



người đàn ông, điều này đã cứu mạng tôi bây giờ. Cảm ơn! - Renoir Reis
Tại sao chúng ta phải làm điều này? - Renoir Reis
Không chắc chắn nhưng một số ký tự trong phản hồi không được coi là chuỗi trừ khi bắt buộc. - Dylan Valade


Bạn không chắc chắn liệu điều này vẫn còn thực tế .. chỉ dành cho người đọc trong tương lai. Nếu những gì bạn thực sự muốn là chuyển các tham số của bạn như một phần của URL, có lẽ bạn nên sử dụng jQuery.param ().


4
2018-02-18 12:56





Không phải là câu trả lời trực tiếp cho câu hỏi của bạn .. Nhưng sau đây là cú pháp duy nhất được sử dụng để làm việc cho tôi -

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

Và tên tham số khớp với đối số của phương thức máy chủ


1
2018-06-24 20:06





Tôi đã phải đối mặt với vấn đề trong việc truyền giá trị chuỗi cho các tham số chuỗi trong Ajax. Sau rất nhiều googling, tôi đã đưa ra một giải pháp tùy chỉnh như dưới đây.

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);
   },
});

Đây, quán ba và calibri là hai biến chuỗi và bạn có thể chuyển bất kỳ giá trị chuỗi nào cho các tham số chuỗi tương ứng trong phương thức web.


-1
2017-09-23 06:54



Tại sao nó lại bị bỏ phiếu? - Sohel Pathan