我是新手做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');
}});
答案 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响应。