我有一个错误,我确定:
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)
{ ....
因为当我到达login.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
.....
我在login.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 />
答案 0 :(得分:1)
尝试使用php://input
这允许您读取原始数据。由于您使用的是application / json,因此您必须使用raw
答案 1 :(得分:1)
尝试使用:
$.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) {.....
答案 2 :(得分:0)
试试这种方式。我之前遇到过同样的问题,这是我在使用你自己的字符串作为密钥时让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)
{ ....
答案 3 :(得分:0)
我也遇到同样的问题,使用这种方法$ .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是一个可变的,它在成功后吐出用户名。以下是PHP代码示例。
<?php
foreach($_POST as $key => $val)
{
$result[$key] = $val;
}
header('Content-Type: application/json');
echo json_encode($result);
?>
尝试这种方法让我知道它确实解决了你的问题吗?
此致