2011-11-07 46 views
34

Dường như việc sử dụng jQuery Ajax POST sẽ chuyển các tham số, nhưng PUT sẽ không. Tôi nhìn vào mã jQuery hiện tại và PUT và DELETE không có ở đó. Tôi đã xem 1,4.2 jQuery và PUT và DELETE ở đó.jQuery Ajax PUT với các tham số

Giải pháp thay thế thông số bằng yêu cầu PUT bằng phiên bản hiện tại của jQuery là gì?

Trả lời

-2

What's the difference between a POST and a PUT HTTP REQUEST?

PUT không chấp nhận các thông số. Đó là một nơi để "đặt" một tài nguyên. Vì vậy, tôi không nghĩ rằng bạn sẽ nhận được các thông số để làm việc, trừ khi nó trong URL, mà có lẽ không phải là những gì bạn muốn làm.

+3

Tham khảo: http://stackoverflow.com/questions/630453/put-vs-post-in-rest Cả hai 'PUT' và' POST' đều có thể được sử dụng để gửi dữ liệu và nó chỉ là thay đổi trong tên phương thức HTTP AFAIK. –

62

Bạn có thể cung cấp một ví dụ hay không, vì việc đặt cũng sẽ hoạt động tốt?

Tài liệu -

Loại yêu cầu tạo ("POST" hoặc "GET"); mặc định là "GET". Lưu ý: Các phương thức yêu cầu HTTP khác, chẳng hạn như PUT và DELETE, cũng có thể được sử dụng tại đây, nhưng chúng không được tất cả các trình duyệt hỗ trợ.

Có ví dụ trong fiddle và các tham số hình thức được truyền tốt (vì nó được đặt nó sẽ không được nối vào url) -

$.ajax({ 
    url: '/echo/html/', 
    type: 'PUT', 
    data: "name=John&location=Boston", 
    success: function(data) { 
    alert('Load was performed.'); 
    } 
}); 

Demo thử nghiệm từ jQuery 1.3.2 trở đi trên Chrome.

+0

Bạn đã thử nhận thông số ở phía máy chủ chưa? Tôi sử dụng getParameter() trong doPut() và params không được thông qua –

+0

Kiểm tra http://stackoverflow.com/questions/855835/servlet-parameters-and-doput – Jayendra

+0

tôi đã thử sử dụng HttpRequest và cùng một kết quả, do đó, nó không phải lỗi jquery, nhưng tại sao Chrome mới nhất không vượt qua các thông số PUT? –

6

Đối với những người khác ở đây như tôi đã làm, bạn có thể sử dụng AJAX để thực hiện PUT với các tham số, nhưng chúng được gửi dưới dạng nội dung chứ không phải dưới dạng chuỗi truy vấn.

-5

Sử dụng:

$.ajax({ 
    url: 'feed/4', type: 'POST', data: "_METHOD=PUT&accessToken=63ce0fde", success: function(data) { 
     console.log(data); 
    } 
}); 

Luôn luôn nhớ sử dụng _METHOD=PUT.

+0

Tôi thường khuyên bạn nên phân tích cú pháp dữ liệu dưới dạng chuỗi vì điều này ngăn ứng dụng được động và khó đọc hơn một mảng đối tượng đơn giản. Ngoài ra, bạn có thể sử dụng 'type: 'PUT'' thay vì đặt nó vào dữ liệu. – Jono20201

Các vấn đề liên quan