gpt4 book ai didi

javascript - JQuery Ajax Json 响应不起作用

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

表单部分:

<script type="text/javascript" src="js/aboneol.js"></script>
<h4>haberdar olun</h4>
<div class="news_letter">
<span id="aboneolhata"></span>
<form action="" method="post" onsubmit="return false;" id="abone">
<input type="text" name="email" placeholder="E-posta adresiniz" />
<input type="submit" onclick="$.aboneol();" value="abone ol" />

</form>
</div>

Jquery部分:

$.aboneol = function(){
var deger = $("form#abone").serialize();
$.ajax({
url: "aboneol.php",
data: deger,
dataType: "json",
type: "post",
success: function(response){
if(response.error == 0){
$(".news_letter").html(response.message);
}else{
$("#aboneolhata").html(response.message);
}
}
});
}

这是 php 部分:

<?php
$email = $_POST["email"];
$email = trim($email);

if(empty($email)){
$response["error"] = 1;
$response["message"] = "Boş Bırakamazsınız..";
}else if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$response["error"] = 1;
$response["message"] = "Hatalı E-posta..";
}else{
require "database.php";
$pdo = Database::connect();
$sql = "INSERT INTO aboneler (email) VALUES (:email)";
$q = $pdo->prepare($sql);
$q->execute(array(
':email'=>$email,
));
$response["error"] = 0;
$response["message"] = $email;
}
echo json_encode($response);
?>

Ajax 发送邮件到php,http 响应码为200。但是success 方法不起作用。我也看不到成功方法中的任何 json 响应。如何解决这个问题呢?

最佳答案

您应该将响应内容类型设置为application/json。如果你没有设置它,你可以在收到响应时,从中生成 json 对象(或字典)。

所以:

1 - 设置 php 响应头:

header("Content-type: application/json");

2 - 或者如果您没有在 php 中设置 header ,则在 javascript 中解析响应:

success: function(response){
response = JSON.parse(response);
if(!response['error']){
...

关于javascript - JQuery Ajax Json 响应不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29732746/

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