gpt4 book ai didi

javascript - 如何在ajax中发送POST数据?

转载 作者:行者123 更新时间:2023-12-02 00:56:14 25 4
gpt4 key购买 nike

我需要编写一个脚本来接收和解析 POST 数组中的 JSON 数组。为了做到这一点,我首先尝试将任何旧的 JSON 数据发送到我的脚本,以便我可以使用一些东西。

我的接收脚本是用 PHP 编写的(但也可以用 Javascript 编写。)现在,我只是序列化 POST 数组并将其写入文本文件以确保有内容进入。它正在写的是一个但是,空数组。

我正在尝试使用 ajax 请求发送数据。这是我目前拥有的:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
var jsondata = JSON.stringify({
val1:"this",
val2:"that"
});

$.ajax({
url: "http://api.mydomain.com/test/index.php",
method: "POST",
data: {json: jsondata},
contentType: "application/json",
success: function(data){alert(JSON.stringify(data));},
error: function(errMsg) {
alert(JSON.stringify(errMsg));
}
});
});
</script>
</head>
<body>
</body>
</html>

我也尝试过很多变体,包括

  • 不对 jsondata 进行字符串化
  • 将数据更改为:data: jsondata
  • 在请求中使用type:代替method:
  • 在请求中包含datatype: "json"

还有一些其他的变体我什至不记得了。我错过了一些简单的东西吗?还是有更简单的方法来完成此操作?

编辑:添加我的 index.php 文件

if (isset($_POST)){
// This line is commented out because it breaks it.
//$jspost = json_decode($_POST['json']);
$jsser = serialize($_POST);
echo "I'm here.";
// Write to text file
$myfile = "response.txt";
$fh = fopen($myfile, 'w') or die("can't open file");
$now = date("n/j/y g:i:s a");
fwrite($fh, $now."\r\n");
fwrite($fh, "I received a POST.\r\n");
fwrite($fh, $jsser);
fwrite($fh, "\r\n\n");
fclose($fh);
}

最佳答案

JS
发送一个JSON字符串

    $(document).ready(function () {
var obj = {
val1: "this",
val2: "that"
};
obj.val3 = 'these';
obj['val4'] = 'those';
$.ajax({
type: "POST",
url: "service.php",
data: {
json: JSON.stringify(obj)
},
success: function (response) {
//service.php response
console.log(response);
}
});
});

service.php
解码并处理接收到的对象

$json = filter_input(INPUT_POST, 'json');
$decoded_json = json_decode($json);
$val1 = $decoded_json->val1;

var_dump($decoded_json, $val1);

反之亦然,如果你想从 php 发送一个 JSON 并将其解码为 JS

PHP

$responseArray = array();
$responseArray['key1'] = 'value1';
$responseArray['key2'] = 'value2';

echo json_encode($responseArray);

JS

success: function (response) {
var decodedJson = JSON.parse(response);
console.log(decodedJson['key1']);
}

关于javascript - 如何在ajax中发送POST数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34882013/

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