javascript - 如果 json_encode 返回已经是 JSON 的 api 数据会发生什么

标签 javascript php arrays json

我已经有一段时间没有使用 JSON/PHP/AJAX 了,我很难访问返回的数据。

我有一个 AJAX 函数,它调用一个 PHP 脚本,该脚本执行 API 调用,并在 $data 中返回 JSON。该 JSON 通过 $newJSON = json_decode($data); 进行解码,并循环创建一些存储在 $cleanHTML 中的格式化 HTML。然后,我将变量 $cleanHTML 和原始 $data 变量放入新数组 $processedReturnArray = array($cleanHTML, $data); 并对它进行编码 echo json_encode($processedReturnArray); 以传回 AJAX 脚本。

我的问题:我假设对包含 JSON 字符串的数组进行 JSON 编码不是正确的方法。最好的解决方案是什么?

这是我的 JS,你会看到我在哪里 console.log 和我看到的第一个元素 $cleanHTML 但当我尝试记录第二个对象的值时我收到以下错误:Uncaught TypeError:无法读取未定义的属性“结果”

    jQuery(document).ready( function($) {    
        $("#searchFormSubmit").click(function() {
            event.preventDefault();
            console.log("In First Part of Search Submit!");
            var address = $('#address').val();
        $.ajax({
                url : the_ajax_script.ajaxurl,
                type : 'post',
                data : {
                    action : 'travel_app_ajaxdata',
                    thangs : $('#CoreSearchForm').serialize()
                },
                success : function( response ) {
                    returnData = JSON.parse(response);
                     console.log("This is my Clean HTML" + returnData[0]);
                     console.log("This is my Location" + returnData[1]);
                      console.log("TEST DATA - EVENT: " + returnData[1]["resultsPage"]);
                    $('.return_data').html(returnData[0]);
},
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert("Status: " + textStatus); alert("Error: " + errorThrown); 
        } 
        });
    });

});

PHP 脚本由多个类组成,如果有助于解决问题,我可以发布一些内容。我还可以发布返回的 JSON 示例。

最佳答案

尝试一下,在处理请求的 php 代码中将 header 设置为 application/json。喜欢

header('Content-Type:application/json');
return json_encode($processedReturnArray);

关于javascript - 如果 json_encode 返回已经是 JSON 的 api 数据会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815576/

相关文章:

javascript 使用 while 在迭代之间有延迟的循环

javascript - lodash orderBy 尝试使其不区分大小写时出现问题

javascript - insidehtml 中的警报按钮

PHP 电子邮件 header - 传送选项

javascript - 如何从响应数组数据设置数据对象

c - 使用分配在堆栈上的数组从不兼容的指针类型警告中初始化

javascript - 多个文件到文件夹

javascript - Chrome 扩展 onMessage 的奇怪行为

php - 使用 Zend 启动 x86_64 Amazon EC2 实例?

java - java中array_push的等效代码是什么?