TypeError: $ .delete не является функцией [duplicate]

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the content of the activity to use the activity_main.xml layout file
    setContentView(R.layout.activity_main);

    // Find the View that shows the numbers category
    TextView numbers = (TextView) findViewById(R.id.numbers);

    // Set a click listener on that View
    numbers.setOnClickListener(new View.OnClickListener() {
    // The code in this method will be executed when the numbers View is clicked on.

    @Override
    public void onClick(View view) {
        Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
        startActivity(numbersIntent);
    }
}

или:

public class MainActivity extends AppCompatActivity implements OnClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);

        // Find the View that shows the numbers category
        TextView numbers = (TextView) findViewById(R.id.numbers);

        // Set a click listener on that View
        numbers.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
        startActivity(numbersIntent);
    }
}
479
задан Damjan Pavlica 13 May 2016 в 08:53
поделиться

12 ответов

Вы можете использовать метод ajax :

$.ajax({
    url: '/script.cgi',
    type: 'DELETE',
    success: function(result) {
        // Do something with the result
    }
});
804
ответ дан Darin Dimitrov 18 August 2018 в 01:11
поделиться
  • 1
    Просто заметьте, если вы используете веб-сервер IIS, а запросы jquery PUT или DELETE возвращают 404 ошибки, вам нужно включить эти глаголы в IIS. Я нашел, что это хороший ресурс: geekswithblogs.net/michelotti/archive/2011/05/28/… – TimDog 12 January 2012 в 23:03
  • 2
    BE AWARE: "The type of request to make ("POST" or "GET"), default is "GET". Note: Other HTTP request methods, such as PUT and DELETE, can also be used here, but they are not supported by all browsers." from: api.jquery.com/jQuery.ajax/#options – andilabs 2 December 2013 в 10:11
  • 3
    @andi Согласно stackoverflow.com/questions/1757187/… любой браузер из IE6 поддерживает эти методы http. Если вы не разрабатываете браузер old , вы можете безопасно использовать методы http за пределами «GET & quot; и "POST". – Martin Carney 6 May 2015 в 18:51
  • 4
    почему «& quot; type: 'delete & quot; не указан в документах jQuery? – user2345998 22 July 2015 в 12:43
  • 5
    для версий после 1.9 вы можете использовать method или type – juanpastas 23 August 2015 в 04:09

Вы можете сделать это с помощью AJAX!

Для метода PUT:

$.ajax({
  url: 'path.php',
  type: 'PUT',
  success: function(data) {
    //play with data
  }
});

Для метода DELETE:

$.ajax({
  url: 'path.php',
  type: 'DELETE',
  success: function(data) {
    //play with data
  }
});
3
ответ дан Alexander Yancharuk 18 August 2018 в 01:11
поделиться
  • 1
    Это уже было сказано за несколько лет до того, как вы отправили этот ответ. Это просто шум, добавив совершенно ничего нового. – Shadow Wizard 14 January 2018 в 09:45

Я написал плагин jQuery, который включает в себя решения, обсуждаемые здесь, с поддержкой кросс-браузера:

https://github.com/adjohnson916/jquery-methodOverride

Проверьте это!

1
ответ дан AndersDJohnson 18 August 2018 в 01:11
поделиться

ajax ()

искать тип параметра

Другие методы запросов HTTP, такие как PUT и DELETE, также могут использоваться здесь, но они не поддерживаются всеми браузерами.

4
ответ дан antpaw 18 August 2018 в 01:11
поделиться

Кажется, возможно с помощью функции ajax JQuery , указав

type: "put" или type: "delete"

и не поддерживается всеми браузерами, но большинство из них.

Проверьте этот вопрос для получения дополнительной информации о совместимости:

Доступны ли методы PUT, DELETE, HEAD и т. д. в большинстве веб-браузеров?

28
ответ дан Community 18 August 2018 в 01:11
поделиться

$.ajax будет работать.

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});
108
ответ дан Jacob Relkin 18 August 2018 в 01:11
поделиться
  • 1
    PUT необходим contentType: "application/json" – KingRider 22 July 2016 в 13:45
  • 2
    Есть ли разница между этим ответом и Дарином Димитровым? Я предполагаю, что они были созданы одновременно, и поэтому не было никакого плагиата, но я не вижу, что добавляет этот ответ (кроме 940 репутации Джейкоба). – Andrew Grimm 16 February 2017 в 06:06

Вот обновленный вызов ajax , когда вы используете JSON с jQuery> 1.9:

$.ajax({
    url: '/v1/object/3.json',
    method: 'DELETE',
    contentType: 'application/json',
    success: function(result) {
        // handle success
    },
    error: function(request,msg,error) {
        // handle failure
    }
});
4
ответ дан moodboom 18 August 2018 в 01:11
поделиться

Вы можете включить в свой хэш хэш ключ: _method со значением «delete».

Например:

data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
  alert('Yupi Yei. Your product has been deleted')
});

Это также относится к

0
ответ дан mumoc 18 August 2018 в 01:11
поделиться
  • 1
    Это просто сообщение. – ctrl-alt-delor 12 February 2014 в 20:54
  • 2
    Это будет работать с рельсами, метод _ используется для туннелирования методов http через POST (хотя вы, вероятно, должны использовать это только с формами - они могут только получать / отправлять сообщения). – opsb 11 July 2014 в 15:52
  • 3
    Это также будет работать с Laravel, если вы делаете это из формы с помощью метода POST. – John Shipp 7 February 2015 в 20:00
  • 4
    Да, это работает, но это не подход RESTful. – zennin 5 May 2016 в 14:14

Вы должны иметь возможность использовать jQuery.ajax :

Загружать удаленную страницу с помощью HTTP-запроса.

И вы можете указать, какой метод следует использовать, с опцией type :

Тип запроса для создания ("POST" или "GET "), по умолчанию« GET ». Примечание. Другие методы запроса HTTP, такие как PUT и DELETE, также могут использоваться здесь, но они не поддерживаются всеми браузерами.

5
ответ дан Pascal MARTIN 18 August 2018 в 01:11
поделиться
  • 1
    знаете ли вы, какие браузеры не поддерживают PUT или DELETE? – Lea Hayes 10 August 2011 в 20:55
  • 2
    Сломанные, если они не способны HTTP: ^) – XTL 15 June 2012 в 13:08

Для краткости:

$.delete = function(url, data, callback, type){

  if ( $.isFunction(data) ){
    type = type || callback,
    callback = data,
    data = {}
  }

  return $.ajax({
    url: url,
    type: 'DELETE',
    success: callback,
    data: data,
    contentType: type
  });
}
2
ответ дан Sam 18 August 2018 в 01:11
поделиться

Мы можем расширить jQuery для создания ярлыков для PUT и DELETE:

jQuery.each( [ "put", "delete" ], function( i, method ) {
  jQuery[ method ] = function( url, data, callback, type ) {
    if ( jQuery.isFunction( data ) ) {
      type = type || callback;
      callback = data;
      data = undefined;
    }

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

, и теперь вы можете использовать:

$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
   console.log(result);
})

копию из здесь

66
ответ дан Stepan Suvorov 18 August 2018 в 01:11
поделиться
  • 1
    Это круто! Спасибо. Я пробовал все традиционные вариации $ .ajax и не имел никакой удачи. Это работало как прелесть. Престижность. – mindtonic 10 April 2015 в 19:39
  • 2
    Удалить не ожидает данных , в то время как put does, не говоря уже о том, что $ .get и $ .post могут иметь разные подписи, а здесь вы жестко кодируете его – Francisco Presencia 30 August 2016 в 11:33
  • 3
    @FranciscoPresencia - 1. Удалить не ожидает, что данные при установке помещаются ---- & gt; Третья строка обрабатывает этот сценарий 2. $ .get и $ .post могут иметь разные подписи ---- & gt; Это создает дополнительные методы jquery для удаления и put. get и post имеют свои собственные методы jquery. – Mahesh 10 January 2018 в 04:02

Из здесь вы можете сделать это:

/* Extend jQuery with functions for PUT and DELETE requests. */

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

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

В основном это копия $.post() с адаптированным параметром метода.

9
ответ дан user2503775 18 August 2018 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: