PUT Ajax请求

时间:2012-02-16 12:51:11

标签: javascript jquery ajax

我是新手做Ajax请求并将以下Pastie放在一起。第107行是我的$ .PUT并且在firebug中抛出一个错误,$ .PUT不是一个函数。至于ajax请求,我知道这是错误的,但是我很遗憾在成功函数addCell中我需要做什么。我对此有正确的解决方法吗?

已编辑

function _ajax_request(url, data, callback, type, method) {
    return jQuery.ajax({
        type: 'PUT',
        url: "slot_days/show",
        data: data,
        success: function(data)
        {
callback($.put('/slot_days/show', { '/slot_days/': 'slot_times' }, function(result) 

            {

            });
          )
        }
    });
}

jQuery.extend({
    put: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'PUT');
}});  

3 个答案:

答案 0 :(得分:21)

此处有错误(success函数必须是匿名的):

return 
    jQuery.ajax({
        type: 'PUT',
        url: 'slot_days/show',
        data: data,
        success: function addCell() {

        }
    });

应该是:

function _ajax_request(url, data, callback, method) {
    return jQuery.ajax({
        url: url,
        type: method,
        data: data,
        success: callback
    });
}

并扩展jQuery:

jQuery.extend({
    put: function(url, data, callback) {
        return _ajax_request(url, data, callback, 'PUT');
}});  

和示例用法示例:

$.put('/url', { 'foo': 'bar' }, function(result) {
    // do something with the results of the AJAX call
});

答案 1 :(得分:0)

好像你不在主文件中包含_ajax_request_PUT.js。这就是无法找到函数$.put的原因。首先包含它,然后你的错误就会消失。

答案 2 :(得分:0)

请在此处查看简单明了的答案:https://stackoverflow.com/a/11549679/916632 只需将类型值更改为“PUT”。

还处理可能导致其他人出现问题的415响应(它阻止了我)。此外,就发送的数据对象而言,还有400响应。