javascript - JSON.stringify 发送空对象

标签 javascript php json ajax

我决定停止使用 jQuery,因此我将所有内容都转换为纯 JavaScript。

我有这个 ajax 调用,我想将 url 的最后部分发送到 php 服务器,但是 JSON.stringify() 发送一个空服务器中的对象

为什么会发生这种情况?

AJAX 调用:

var ajax = new XMLHttpRequest();

ajax.open('get', 'ajax/autocomplete.php');
ajax.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
ajax.send(JSON.stringify({q: document.location.href.split('/').slice(-1)[0]}));

PHP:

<?php
    require_once '../../private/core/init.php';
    header('Content-Type: application/json');

    print_r($_GET);//empty

    $data = new AUTOCOMPLETE($_GET['q']);
    echo json_encode($data->data());
?>

我收到此错误:未定义索引:q

最佳答案

您可能想使用 error_reporting(0) 抑制 PHP 错误;或者首先使用 isset/empty 或其他一些可以抑制 PHP 警告的函数验证输入数据。警告输出将使您的 JSON 响应数据对您的 javascript(jQuery 或纯 javascript)无效。

<?php
error_reporting(0);
require_once '../../private/core/init.php';
header('Content-Type: application/json');

if (isset($_GET['q'])) {
    $data = new AUTOCOMPLETE($_GET['q']);
    echo json_encode($data->data());
}
?>

关于javascript - JSON.stringify 发送空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353683/

相关文章:

javascript - Fullcalendar -> 更改所选事件的颜色

javascript - 在分区内获取 Canvas 上的确切鼠标位置

php - 是否可以在一个 MySQL 查询中完成此操作?

php - 我的服务器配置可以阻止 json 工作吗?

php - MySQL 查询 : find the category id in the products table, 但是 id 被包装成 `&12&`

javascript - 将引号放入 JSON 数组中

json - JSON文档数据库中的键成本(mongodb,elasticsearch)

javascript - 在 Http.get 中,response.on ('data' ) 和在 javascript 中使用 bl 库有什么区别?

javascript - 单击不在 React.js 中表单内部的按钮后如何重置输入值

asp.net-mvc - 从 ApiController 返回 JSON 流