gpt4 book ai didi

javascript - Ajax POST 请求变成 GET 请求

转载 作者:可可西里 更新时间:2023-10-31 22:54:47 33 4
gpt4 key购买 nike

我正在试用 Redis,想构建一个简单的前端/后端设置来测试和练习。前端是 HTML/Javascript/JQuery,后端是 PHP/Apache/Redis。基本上,我想向后端发送一个发布请求并接收一个响应,然后将其显示在 Web 控制台上。为了发送请求,我使用了 JQuery:

var data = $("#login_form :input").serializeArray();

var username = data[0]['value'];
var password = data[1]['value'];

$.ajax({
type: "POST",
url: "http://localhost/Convo/user.php?jsoncallback=%3F",
dataType: "json",
cache: false,
data: { username: username, password: password, method: "create" },
success: function(text){console.log("awesome");}
});

我在 Firefox 上使用 Firebug 来查看到底发生了什么。在 Firebug 中,我看到触发的是 GET 请求而不是 POST。附加到 url 的 jsoncallback 字符串可能是原因,但没有它,我根本得不到响应。作为旁注,我期待 json 返回响应。这是我的 PHP 代码:

    error_reporting(E_ALL);
ini_set('display_errors', '1');
require 'Predis/Autoloader.php';
Predis\Autoloader::register();

$body = array();
$head = array();

$redis = new Predis\Client(array(
'scheme' => 'tcp',
'host' => '127.0.1.1',
'port' => 6379,
));

if(!$redis)
{
$body['status'] = "fail";
$body['message'] = "unable to connect to database";
$head['body'] = $body;

header('Content-type: application/json');
echo json_encode($head);
exit;
}
else
{
$body['status'] = "success";
$body['message'] = "connected to database!";
$head['body'] = $body;
$jsoncallback = $_POST['jsoncallback'];

header('Content-Type: application/json');
echo $jsoncallback . '(' . json_encode($head) . ')';
exit;
}

jsoncallback 东西是获得响应的唯一方法,但是没有它我如何成功启动真正的 POST 请求?

最佳答案

可能是因为你使用的dataType是jsonp,jsonp不支持POST请求。

编辑:尝试发送您的 jsoncallback 参数,以及其他参数:

$.ajax({
type: "POST",
url: "http://localhost/Convo/user.php",
dataType: "json",
cache: false,
data: { username: username, password: password, method: "create", jsoncallback: "%3F" },
success: function(text){console.log("awesome");}
});

关于javascript - Ajax POST 请求变成 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798007/

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