gpt4 book ai didi

javascript - jQuery Ajax 方法成功,但没有收到数据

转载 作者:可可西里 更新时间:2023-11-01 00:08:41 24 4
gpt4 key购买 nike

我已经在这个问题上花费了 10 多个小时,基本上搜索了整个 Internet 以寻找解决方案。这是一个简单的 jQuery ajax POST 方法,我已经成功使用过几次。过去我也遇到过这个问题,但不知何故解决了。我传递的数据似乎没问题,在 chrome 的网络控制台中,它甚至显示了一个包含假定数据的成功帖子。但是,使用 .load 获取该数据始终返回 null。在下面的代码中,我使用了一个我阻止默认提交的表单来防止刷新。一个按钮触发 sellBook(),它会提示一个表单,之后提交会触发 post()。

JS

    function sellBook(i) {
$('#results').html('');
title = books[i].title;
author = books[i].author;
ISBN = books[i].ISBN;
publisher = books[i].publisher;
image = books[i].image;
year = books[i].year;
$('#results').html('Listing for ' + books[i].title + ' by ' + books[i].author + '<br><br><form method="post" action="https://localhost/textbookexchange/db2.php" id="sellIt">Edition #: <input type="text" id="edition" name="edition"/><br><br>Price: $<input type="text" id="price" name="price"><br><br>Condition: <input type="text" id="condition" name="condition"><br><br><input type="submit" value="Submit"><br><br></form>');
getInfo();

$('#sellIt').submit(function () {
post();
return false;
});
}

function post() {
price = document.getElementsByName('price')[0].value;
edition = document.getElementsByName('edition')[0].value;
condition = document.getElementsByName('condition')[0].value;
var formData = {
A: title,
B: author,
C: ISBN,
D: publisher,
E: image,
F: year,
G: soldby,
H: fblink,
I: price,
J: edition,
K: condition
};

var url = 'db2.php/'
jQuery.ajax({
type: 'POST',
url: url,
data: formData,
success: function (data) {
alert(data);
$('#results').load("db2.php/");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status + " " + thrownError);

},
});
}

我总是返回成功,从来没有返回错误,因为我收到有关数据的警报。

在我的 apache 错误日志中我得到了这个:

[2015 年 8 月 13 日星期四 11:24:15.666854] [:error] [pid 4255] [client 127.0.0.1:50476] PHP 注意:未定义索引:/var/www/html/textbookexchange/db2.php 中的 A在第 2 行,引用者:https://localhost/textbookexchange/

   db2.php(the php file POSTED to)
<?php
echo $_POST['A'];
?>

我试过将其解析为 JSON、重置 contentType、设置 dataType、将 crossdomain 设置为 true、将 async 设置为 false、使用 jsonp、使用 $.post、使用更少的数据(只有一个变量)以及其他一些东西..

这是网络请求的截图: The POST succeeds, showing data in preview and form data, while the get only ever returns null

最佳答案

load() 创建一个单独的 get 请求,因此没有 POST 数据供 php 使用。您需要做的是使用从 post 请求返回的数据:

success: function(data) {
alert(data);
$('#results').html(data); //.load("db2.php/");
},

关于javascript - jQuery Ajax 方法成功,但没有收到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992880/

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