用$ .ajax发布不起作用

时间:2014-05-24 00:39:34

标签: javascript jquery ajax

嗯,问题不是新的,正如我所看到的(真的很多),但仍然找不到自己的解决方案。

问题描述:

  1. 拥有本地Web服务器 - XAMPP;
  2. Firefox 29.0.1
  3. 尝试使用$ .ajax发送POST

    function checkUser(){
      $.ajax({
        type: 'POST',
        url: 'ajax/checkUser.php',
        data: 'uname='+$("#username").val()+'&pword='+$("#password").val(),
        success: function(){
          someNewFunc();
        },
      });
    };
    
  4. 这个函数我打电话给:

    $(document).ready(function(){
            $(".button.postfix.login").on("click", function(){
            if (($("#username").val() != "") && ($("#password").val() != "")) {
                hide(); <-- hide pop ups about empty field
                checkUser();    
            } else {$("#empty").show();} <-- pop ups 
            });
        });
    

    此处包含元素的代码:

    <input id="username" type="text" placeholder="Username" />
    <input id="password" type="password" placeholder="Password" />
    
    <a class="button postfix login" href="#" 
    onclick="event.preventDefault();">Sign in</a>
    

    我猜数据已经出来了,但是checkUser.php页面并没有得到任何结果。 我做错了什么?

    P.S。 checkUser.php:

    <?php
    print_r($_POST);
    ?>
    

    结果 - 数组()

    P.P.S。顺便说一句,如果POST改为GET它正在工作,但需要POST

2 个答案:

答案 0 :(得分:0)

你的someNewFunc回调会引发火灾吗?您是否在Firefox的开发者控制台中看到了HTTP AJAX请求?

尝试将您的帖子数据作为字典发送到$.ajax

$.ajax({
  type: 'POST',
  data: {
    uname: $("#username").val(),
    pword: $("#password").val()
  }
});

答案 1 :(得分:0)

$(document).ready(function(){

$(".button.postfix.login").on("click", function() {

    var username = $("#username").val();
    var password = $("#password").val();

if ((username != "") && (password != "")) {
    hide(); <-- hide pop ups about empty field
    checkUser(username, password); // Pass the variables here as a parameter
} else {
    $("#empty").show();} <-- pop ups 
});

// Put the parameters here
function checkUser(username, password) {

  $.ajax({
    type: 'POST',
    url: 'ajax/checkUser.php',
    data: { username:username, password:password} //It would be best to put it like that, make it the same name so it wouldn't be confusing
    success: function(data){
       alert(data);
    },
  });
};

});

所以当你打算在php上调用它时

$username = $_POST['username'];

echo $username;