2016-04-29 3 views
0

У меня есть следующий код, где я просто получаю ресурс с вызовом Ajax Jquery ..Почему jQuery.get() меняет мой URL?

$.get({ 
      url: "http://jennifer-lawrence/mygirl/FreeTonight.php", 
      type: "GET", 
      dataType: "json", 
      success: function(b) { 
       a(b, b.signature) 
      } 
     }) 

Когда я огнем это, терпит неудачу, и когда я смотрю на вкладке Сети Chrome Дев инструментов, я вижу что запрос выходит к ..

http://jennifer-lawrence/mygirl/[object%20Object] 

и, конечно, сервер возвращает 404.

Но если я изменю «$ .get» в приведенном выше коде «$ .ajax», то он отлично работает.

Что случилось с этим?

+0

change '$ .get ({' to '$ .ajax ({' – aldanux

+0

$ .get принимает URL как первый параметр (https://api.jquery.com/jquery.get/), а не объект Следовательно, почему работает $ .ajax. – Cameron

+0

'$ .get (" http: //jennifer-lawrence/mygirl/FreeTonight.php "). Then (function (response) {console.log ('response', response);}) .fail (function (error) {console.log ('error', error);}); ' – Hitmands

ответ

1

Отъезд документы: https://api.jquery.com/jquery.get/

$.get не принимает объект таким же образом, что $.ajax делает. Вероятно, потому что это ярлык, чтобы иметь возможность быстро написать $.get(url).

За Документов ваш код должен быть:

$.get("http://jennifer-lawrence/mygirl/FreeTonight.php", Null, 
     function(b) { 
      a(b, b.signature) 
     } 
,'json'); 

Или просто изменить $.get к $.ajax, проблема решена.

На самом деле

Вы можете передать объект $.get версии> = 1.12 и> = 2.2. Таким образом, ваш пример будет работать, если вы обновите версию jQuery до одного из них. Но type: 'GET' полностью резервируется.

1

[object%20Object] - это то, что вы получаете, когда принимаете простой объект, преобразуете его в строку, а затем кодируете URL.

http://jennifer-lawrence/mygirl/[object%20Object] выглядит как вы на http://jennifer-lawrence/mygirl/, а затем попытаться получить доступ относительный URI [object%20Object]

Вы получили бы это, если вы прошли { some: object }, как если бы это было строковое представление URL.


Теперь см. the docs. Есть два способа вы можете позвонить get:

jQuery.get(url [, data ] [, success ] [, dataType ]) версии добавлены 1.0

и

jQuery.get([settings ]) версии добавлены: 1,12/2,2

Вы используете второй метод, но он действует так же, как вы используете первый метод.

Возможно, вы используете версию jQuery , которая не поддерживает второй метод.

Либо используйте первый метод, либо обновите jQuery.

Смежные вопросы