gpt4 book ai didi

javascript - AJAX不会第二次获取JSON数据

转载 作者:行者123 更新时间:2023-11-28 07:25:27 25 4
gpt4 key购买 nike

我正在向一个 php 文件发送 Ajax 请求,该文件返回所提交数据的 JSON 数组,第一次很棒,它发送数据并获取它,所以我可以使用它,但第二次它给出我的一个错误

SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

我的目标是验证 php 文件中的数据,如果数据未验证,那么我将向未验证的字段添加错误类,然后用户更正这些字段,并再次发送表单,无需刷新。

我的测试表明它第一次工作,但是当我想第二次发送表单时,它给了我上述错误,有什么线索吗?

AJAX:

$('#ajax').submit('submit', function(){

var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};

that.find('[name]').each(function(index, value){
var that = $(this),
name = that.attr('name'),
value = that.val();

data[name] = value;
});

$.ajax({
url: url,
type: type,
data: data,
cache:false,

success: function(response){
var json = response,
obj = JSON.parse(json);
if(obj.title == 'Mrs.'){
// $('#title').addClass('has-warning');
$(function () {
$('#name').tooltip({ 'title': 'Please fill name'});
});
}
alert(obj.title);
}

});
return false;
});

PHP 文件:

if(Input::exists()){
if(token::check(Input::get('token'))){

echo json_encode(
array(
"title" => Input::get('title')
)
);
}

}

最佳答案

你的 token 检查是罪魁祸首。它第二次不起作用,因为它返回空响应。这是因为您可能需要重新创建一个新 token 并将其与第一个响应一起发送。要测试这是否是问题所在,只需编写:

if(Input::exists()){
if(token::check(Input::get('token'))){

echo json_encode(
array(
"title" => Input::get('title')
)
);
}else{
echo json_encode(
array("title" => 'See? You need to update token')
);
}
}

您应该重新生成一个新的 token ,然后以以下形式更新其值:

echo json_encode(
array("newToken" => Token::generate() )
);

关于javascript - AJAX不会第二次获取JSON数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com