我在这里迷路了,我正在开发一个游戏,需要调用服务器来启动游戏并注册用户并获取一些游戏数据。 但是在调用启动游戏时没有任何反应,我不断收到此错误消息。 我已经验证了从服务器获得的 JSON 响应。 以下是我的代码,请帮助:(
杰伦
{
"message": "Game started",
"code": 200,
"status": "success",
"user_session_id": "217c7a4759388ae0af80bdf7668e4bf5",
"points": 0,
"dataBN4": {
"1": {
"number_id": 181,
"guess_number": 183
},
"2": {
"number_id": 182,
"guess_number": 968
},
"3": {
"number_id": 183,
"guess_number": 742
},
"4": {
"number_id": 184,
"guess_number": 986
},
"5": {
"number_id": 185,
"guess_number": 230
},
"6": {
"number_id": 186,
"guess_number": 580
},
"7": {
"number_id": 187,
"guess_number": 648
},
"8": {
"number_id": 188,
"guess_number": 691
},
"9": {
"number_id": 189,
"guess_number": 424
},
"10": {
"number_id": 190,
"guess_number": 85
}
}
}
Jquery:
function startNewGame() {
$('#game').html(activeHtml);
n_url = gameBaseUrl + 'action=start_game';
$.ajax({
dataType: "JSON",
url: n_url,
success: function(data){
userSessionId = data.user_session_id;
answersObject = data.dataBN4;
}
}).done(function(){
resortAnswers();
createAnswers();
});
/*
$.getJSON(url, {}, function (data) {
userSessionId = data.user_session_id;
answersObject = data.dataBN4;
}).done(function () {
resortAnswers();
createAnswers();
});
*/
}
PHP 生成 json;
<?php
ob_start();
//make db entries and loges to data array
$data['message'] = 'game started';
$data['status'] = 'success';
$data['code'] = 200;
$data['points'] = 0;
$data['dataBN4'] = [
['number_id' => 11, 'guess_number' => 33],
//and so for until i added 9 more similar arrays here
];
header('Content-Type: application/json');
echo (json_encode($data));
$out = ob_get_clean();
echo $out;
更新:
我安装了Fire错误,现在它显示此错误:"跨源请求被阻止:同源策略不允许在 http://ourserverblabla/index.php?action=start_game 读取远程资源。(原因:缺少 CORS 标头"访问控制-允许源")"
终于成功了。
我在脚本顶部添加了这一行,它奏效了。
header('Access-Control-Allow-Origin: *');
这似乎是jQuery和某些浏览器的问题。 主要是浏览器,因为它们会阻止一些通信,原因我什至不知道。