2016-12-11 3 views
0
$.get('/users/test/' + username, { 
    statusCode: { 
     409:() => { 
     valid = false; 
     alert(username + ' is unavailable'); 
     }, 
     200:() => { 
     valid = true; 
     } 
    } 
    }); 

На моем сервере я должен видеть:JQuery Ajax StatusCode непрогнозируемой

"GET /users/test/asdf HTTP/1.0" 200 0

Но вместо этого я вижу JQuery с удовольствием добавляя какие-то дурацкие строки запроса:

"GET /users/test/asdf?statusCode%5B200%5D=&statusCode%5B409%5D= HTTP/1.0" 200 0

JQuery возвращает 200, но код 409 все еще работает. Что происходит?

ответ

1

Вы передаете объект во втором аргументе, который содержит то, что выглядит как обработчики ответов на основе кода на основе кода.

jQuery не делает так. Второй аргумент $.get() является необязательным аргументом data, который используется для передачи данных на сервер. jQuery сериализует эти данные и включает в себя строку запроса в запросе get.


Вы, вероятно, хотели использовать другую форму этой функции, которая принимает объект конфигурации, который включает в себя URL:

$.get({ 
    url: '/users/test/' + username, 
    statusCode: { 
     409:() => { 
     valid = false; 
     alert(username + ' is unavailable'); 
     }, 
     200:() => { 
     valid = true; 
     } 
    } 
    }); 
+0

Так что же это значит: https://api.jquery.com/jquery.get/ # jQuery-get-settings? Очевидно, что он не работает, когда я его пробовал, но он должен работать, если я передаю объект как единственный параметр ?. – dtgq

+0

@DavidTan Это другой вызов, который принимает только объект конфигурации. Включив url как аргумент, а не как часть объекта конфигурации, вы сказали jQeury использовать другой вызов, чем вы планировали. Я обновил свой ответ, чтобы принять это во внимание. – Ouroborus

+0

Ну, я буду проклят ... на самом деле это первое, что я пробовал, но он вообще не работал, поэтому я попытался переместить URL-адрес за пределы объекта и, похоже, частично работал. У меня, должно быть, была опечатка или что-то в моей первой попытке. Спасибо за помощь. – dtgq

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