我正在使用jQuery向PHP文件发出AJAX GET
请求。我希望PHP脚本返回一个JSON对象,但是,目前它正在返回一个JSON字符串。我意识到我可以在jQuery代码中使用JSON.parse
,但是,我在返回一个JSON对象的API的AJAX调用方面的经验。我试图用php脚本做同样的事情,但它返回一个字符串而不是一个对象。
有没有人知道这里的最佳做法是什么,如果最佳做法是返回JSON对象,我将如何使用PHP执行此操作?
请参阅以下代码:
JS
$.get('test.php', function(data){
console.log((data));
});
PHP
<?php
$jsonAnswer = array('test' => 'true');
echo json_encode($jsonAnswer);
答案 0 :(得分:7)
在PHP文件中,将内容类型更改为application/json
。
<强> JS 强>
$.get('/process.php', function(data) {
console.log(data);
} );
<强> PHP 强>
<?php
header( "Content-type: application/json" );
$jsonAnswer = array('test' => 'true');
echo json_encode($jsonAnswer);
然后你的控制台应该读取Object {test: "true"}
而不只是JSON字符串。
答案 1 :(得分:2)
将json添加到get函数的末尾以返回json
$.get('test.php', function(data){
console.log((data));
},'json');//here
和/或在php中添加此标题
header('Content-Type: application/json');
更多信息here
答案 2 :(得分:0)
无需修改PHP脚本即可:
$.get( "test.php", function( data ) {
var arr = $.parseJSON(data);
console.log(arr);
alert(arr.test);
});