Javascript PHP Ajax JSON错误:SyntaxError:JSON中位置0处出现意外标记\错误
我在一些Ajax和PHP方面遇到了问题 当我尝试向Ajax调用发送JSON响应时,会出现以下错误:Javascript PHP Ajax JSON错误:SyntaxError:JSON中位置0处出现意外标记\错误,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我在一些Ajax和PHP方面遇到了问题 当我尝试向Ajax调用发送JSON响应时,会出现以下错误: SyntaxError: Unexpected token \ in JSON at position 0 使用开发工具,我看到响应中包含我的控制器,这可能是问题的原因 \Ajax\Controller\SimpleTestController{"result":{"1":"message"}} 这是什么原因造成的 大多数常见的Google/SO结果都有“当你点击/test/a
SyntaxError: Unexpected token \ in JSON at position 0
使用开发工具,我看到响应中包含我的控制器,这可能是问题的原因
\Ajax\Controller\SimpleTestController{"result":{"1":"message"}}
这是什么原因造成的
大多数常见的Google/SO结果都有“当你点击
/test/ajax/simple_test
时,你会得到什么?”问题是当你点击页面时,你没有得到json,或者至少它的格式不好,所以你期望的json是从反斜杠\ajax\Controller\SimpleTestController
开始的。。。你在用什么技术?哪个框架或CMS?您的任何PHP文件都在呼应您的名称空间和类名吗?@WhiteFire,我这么说是因为我刚刚测试了您的PHP代码,它返回了预期的“良好”格式的JSON:{“result”:{“1”:“message”}
所以我认为可能是您的工作方式,控制器名称以某种方式被打印出来,它破坏了您发送的json结果。欢迎@WhiteFire,向您的echo
feind=P问好
$(document).on("change", '#selection', function(e) {
var value = $(this).val();
$.ajax({
type: "GET",
data: {'testselection': value},
url: '/test/ajax/simple_test',
dataType: 'json',
processResults: function(data) {
console.log(data);
},
error: function (xhr, ajaxOptions, thrownError){
console.log(thrownError);
console.log(xhr.statusText);
}
});
});
<?php
namespace Ajax\Controller;
use Controller\BasicController;
class SimpleTestController extends BasicController{
public function indexAction()
{
if(isset($_GET['testselection'])){
$result = array(1 => "message");
header('Content-Type: application/json');
echo json_encode(array("result" => $result));
}
}
}
SyntaxError: Unexpected token \ in JSON at position 0
at JSON.parse (<anonymous>)
at m.parseJSON (jquery-1.11.3.min.js:5)
at e.parseJSON (jquery-migrate-1.2.1.min.js:2)
at Pb (jquery-1.11.3.min.js:5)
at x (jquery-1.11.3.min.js:5)
at XMLHttpRequest.b (jquery-1.11.3.min.js:5)
OK
\Ajax\Controller\SimpleTestController{"result":{"1": "message"}}
\Ajax\Controller\SimpleTestController{"result":{1: "message"}}
"result":{1: "message"}
1: "message"
\Ajax\Controller\SimpleTestController