javascript - 发送json数据到服务器jquery.ajax

标签 javascript php jquery ajax json

不幸的是,另一个与 json 相关的问题......

考虑以下 json

[{"details":{
"forename":"Barack",
"surname":"Obama",
"company":"government",
"email":"bigcheese@whitehouse.com",
"files": [{
      "title":"file1","url":"somefile.pdf"
       },
       {
       "title":"file2",
       "url":"somefile.pdf"
       }]
}
}]

我需要将此数据发送到服务器上的 php 脚本,然后在服务器上与其交互,但不知道如何操作。

我通过 jquery.ajax 发送它,它发送得很好(没有错误消息),代码如下。 (newJson 是我按照上面创建的 json 对象)

$.ajax({
type: "POST",
url: "test.php",
dataType: 'json',
data: newJson,
success: function(msg) 
    {
    alert(msg);
    },
error: function(jqXHR, textStatus) 
    {
    alert(textStatus);
    }
});

所以到目前为止,在我的 php 脚本中,我只想将内容作为字符串回显,并显示在成功警报中

<?php
header('Access-Control-Allow-Origin: *'); 
echo $_POST;
?>

但这只会给我一个解析错误..那么你们有什么想法吗?

最佳答案

您必须有一个键/值对才能使用 $_POST[key] 在 php 中接收数据。发送您拥有的数组本身并不是最好的方法,因为您已经拥有对象的结构

我会打开外部数组,因为您只在其中发送一个对象

然后对象看起来像

{"details":{
"forename":"Barack",
"surname":"Obama",
"company":"government",
"email":"bigcheese@whitehouse.com",
"files": [{
      "title":"file1","url":"somefile.pdf"
       },
       {
       "title":"file2",
       "url":"somefile.pdf"
       }]
}
}

在 php 中将通过 $_POST['details'] 接收。不要转换为 JSON,只需将整个对象传递给 $.ajax data 属性。

如果您从ajax收到parserror,则在接收端,听起来像是从php收到500错误,或者没有按照您的dataType的预期发送回json

关于javascript - 发送json数据到服务器jquery.ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886553/

相关文章:

javascript - 如何从 HTTPS 服务器请求 HTTP 服务器的 javascript 文件

javascript - 用于删除可拖动的可克隆 DIV 元素的按钮

php - 如何在php中显示数据库中的日期到输入类型=日期

javascript - 如何将 jquery 代码更改为 javascript 或 typescript

jquery - 更改表格行背景颜色

javascript - 在 function1() 内部调用 function2() 但它在 .subscribe() 之前被触发

javascript - 我正在使用 Bootstrap 模型。但是当我在 js 端调用一个函数时它关闭了,我希望它打开

php - 变音符号敏感搜索 PHP

PHP PDO DB 连接未知字符集

javascript - Angular 资源被误认为是 C# MVC Controller