我有以下功能:
side= 'car';
var request_checkUrl = '/antibot/antibot_data?script=' + side;
$.ajax({
url: request_checkUrl,
dataType: 'application/json',
complete: function(data){
alert("running..");
},
success: function(data){
alert("success");
},
error: function(data) {
alert("ERROR");
console.log(data);
}
})
结果是: 带有ERROR的框和正在运行的框。它还在控制台日志中显示:
响应是正确的。但是,为什么这段代码会给我错误信息,什么时候应该成功?
我也试过get,getjson,ajax和数据类型json等等。但是我得到了相同的结果。
我在这里做错了什么?
编辑:
这是完整的回复:
{
"status": 200,
"data": {
"text": "en TV",
"images": [
{
"hash": "47a32df0c4b1f0b522e5faf35a46aacd95fe0ed4",
"file": "ABImage_plane_1"
},
{
"hash": "e11f83f4411364546329c8a8bf88da0dffd27029",
"file": "ABImage_house_2"
},
{
"hash": "93b4454ac09e7d7478fa2d25322e0e784370ea7a",
"file": "ABImage_car_5"
},
{
"hash": "36fac21a830b922edb507487d833556aeb9688f7",
"file": "ABImage_clock_4"
},
{
"hash": "cd1df47e052a5d0d50dab61b3e716339be0c6e68",
"file": "ABImage_TV_3"
},
{
"hash": "59e7f70b7874a500e576e25077adf254c52f5ee8",
"file": "ABImage_train_4"
}
]
}
}
EDIT2:
这是我使用服务器端PHP
的功能echo $this->framework->ajaxJSONResponse(200, $data);
和
function ajaxJSONResponse($status, $data) {
header('Content-type: application/json');
$response = array();
$response['status'] = $status;
$response['data'] = $data;
return json_encode($response);
}
编辑: 即时通讯使用jquery 2.1.3
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
编辑: 我也尝试过:
$.ajax({
url: request_checkUrl,
type: "GET",
dataType: "json", // "xml", "json"
success: function (data) {
alert("success");
alert(data);
},
error: function (jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
输出错误:
再次更新:
我尝试验证网址: http://www.freeformatter.com/json-validator.html
得到了:
The JSON input is NOT valid according to RFC 4627 (JSON specification). Unexpected token {"status":200,"data":{"text":"en TV","images":[{"hash":"47a32df0c4b1f0b522e5faf35a46aacd95fe0ed4","file":"ABImage_plane_1"},...
但如果我启用:
接受非引用名称
我得到:
The JSON input is valid according to RFC 4627 (JSON specfication).
我怎样才能按照我的要求开展这项工作?
答案 0 :(得分:0)
以下答案只是尝试帮助解决问题。
尝试将代码修改为以下内容:
var side = 'car';
var request_checkUrl = '/antibot/antibot_data?script=' + side;
$.ajax({
url: request_checkUrl,
type: "GET",
dataType: 'json',
beforeSend: function () {
document.title = "Running...";
},
success: function (data) {
document.title = "Success.";
alert("success");
},
error: function (data) {
alert("ERROR");
console.log(data);
}
});
让我知道这是否有效。
<强>更新强>
在上次更新中,您收到的json无效。从PHP开始,您需要始终打印有效的json。您可以使用此链接验证您的json输出:http://pro.jsonlint.com。
parsererror, SintaxError: Unexpected token
:这意味着,你在php代码中出错了。