Ваш код:
"form="+$("#login").serialize()+"&action=login"
Учитывая someuser
и somepassword
, отправит эти данные:
form = uname = someuser & upass = somepassword & action = login
Обратите внимание на двойной знак равенства, что неверно, и именно поэтому вы получаете ошибку.Если вы отбросите часть form=
, то получите правильную строку запроса.
Однако странно отправлять параметры строки запроса в теле сообщения, а не вURL.Было бы разумнее структурировать ваш код следующим образом:
var loginUrl = "server.php"
+ "?"
+ $("#login").serialize()
+ "&action=login"
;
$.ajax({
type: "POST",
url: loginUrl,
success: function(response){
// ...
},
error: function(response){
// ...
}
);
... или отправить в теле в виде JSON, а не в качестве параметров строки запроса.
Найтио том, как сериализовать в JSON, см. этот вопрос .