我在这里有一个错误,我确定:
var username = $("#username").val();
var password = $("#password").val();
var login = $("#login").val();
var remember = $("#remember").val();
console.log(username, password, login, remember); //this shows up fine
$.ajax({
url: 'php/login.php',
//here i think
data: {username:username,password:password,login:login,remember:remember},
type: 'POST',
dataType: 'application/json',
success: function(data)
{ ....
因为当我进入登录名时.php我在行上得到未定义的索引:
<?php
$username = $_POST['username']; //here
$password = $_POST['password']; //here
if ($_POST['login']) //check if the submit button is pressed
{
$remember = $_POST['remember']; and here
.....
我返回登录.php再往下:
echo json_encode("true"); //or "false"
在 Firebug 的响应窗格中:
<br />
<b>Notice</b>: Undefined index: username in <b>C:'xampp'htdocs'www'php'login.php</b> on line <b>5</b><br />
<br />
<b>Notice</b>: Undefined index: password in <b>C:'xampp'htdocs'www'php'login.php</b> on line <b>6</b><br />
123123123<br />
<b>Notice</b>: Undefined index: login in <b>C:'xampp'htdocs'www'php'login.php</b> on line <b>8</b><br />
尝试使用 php://input
这允许您读取原始数据。由于您使用的是应用程序/json,因此您必须获取原始数据
尝试使用:
$.ajax({
url: 'php/login.php',
data: JSON.stringify({'username':'username','password':'password','login':'login','remember':'remember'}),
type: 'POST',
dataType: 'json',
contentType: "application/json",
success: function(data) {.....
使用此方法 $.ajax 并传递所有内容也遇到了同样的问题:分开,但我如何使用以下代码片段来解决这个问题。
<script type="text/javascript">
$(function(){
$('#submit').on('click',function(){
var formdata ={
username:$('#username').val(),
password:$('#password').val(),
message:$('#message').val(),
submit:$('#submit').val()
};
var url=$('form').attr('action');
console.log(url);
console.log(formdata);
var posting = $.post(url,formdata);
posting.success(function(data){
$('.success').empty().append(data.username);
});
});
});
</script>
在此代码段中,.success 是一个 vriable,它在成功后吐出用户名。 以下是示例 PHP 代码。
<?php
foreach($_POST as $key => $val)
{
$result[$key] = $val;
}
header('Content-Type: application/json');
echo json_encode($result);
?>
尝试此方法,让我知道它确实解决了您的问题?
问候
试试这个方式。我之前遇到过同样的问题,这是当您使用自己的字符串作为键时,我可以让 JQuery 正确发送键/值对的唯一方法。
var username = $("#username").val();
var password = $("#password").val();
var login = $("#login").val();
var remember = $("#remember").val();
$.ajax({
url: 'php/login.php',
data: "username="username + "&password="+password + "&login="+login + "&remember="+remember,
type: 'POST',
dataType: 'json',
success: function(data)
{ ....