我的表单有一个文本输入字段和一个按钮。在提交表单上,我从文本字段user
中获取值并对ajax.php
进行ajax调用,然后让服务器返回userID
。服务器确实返回了一个值,如控制台中所示。但我不确定为什么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 :(得分:0)
也许数据以json或jsonp的形式返回?您已指定dataType:'text'。如果返回数据类型不同,则会出错。如果您使用的是相当新版本(我认为2.0或更高版本),请忽略dataType或指定dataType:“auto”将允许调用成功。然后你可以调试以找出如何处理响应。
答案 1 :(得分: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
});