2014-11-14 70 views
0

我的表單有一個文本輸入字段和一個按鈕。在提交表單中,我從文本字段user中獲取值,然後撥打ajax.php進行ajax調用,然後讓服務器返回userID。服務器確實正在返回一個值,如控制檯所示。但我不確定爲什麼提交表單後,每個請求中的ajax調用都失敗了。我可以改正或更改哪些方面取得成功?Ajax請求失敗 - 從服務器檢索用戶標識

的index.php

$('form').submit(function(e) { 
    var searchUser = $('input[name="user"]').val(); 
    var getUser = $.ajax({ 
     type: "GET", 
     url: "ajax.php", 
     data: {user: searchUser}, 
     dataType:'text' 
    }); 
    getUser.done(function(data) { 
     alert(data); 
    }); 
    getUser.fail(function(jqXHR, textStatus, data) { 
     alert("Request failed: " + textStatus); 
    }); 
}); 

<form id="search" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="GET"> 
    <label for="user"> Username:</label><input type="text" name="user" id="user" value="<?php echo $user ?>"><br> 
    <button type="submit" id="search">Search</button> 
</form> 

ajax.php

if(!empty($_GET['user'])){ 
     $user = $_GET['user']; 
     echo getInstaID($user); // this prints a numeric value like 2057821 
     } 

回答

0

也許數據被返回JSON或JSONP?你已經指定了dataType:'text'。如果返回數據類型不同,它將會出錯。如果您使用的是相當新的版本(我認爲2.0或更高版本),則省略dataType或指定dataType:「auto」將允許調用成功。然後你可以調試來弄清楚如何處理響應。

0

你可能會嘗試加入一個成功的功能如下所示:

$('form').submit(function(e) { 

    var searchUser = $('input[name="user"]').val(); 

    $.ajax({ 
     type: "GET", 
     url: "ajax.php", 
     data: {user: searchUser}, 
     success:function(data){//begin success function 

     //do something with the data returned from ajax.php file 
     alert(data); 

    }//end success function 

});