【发布时间】:2013-05-23 23:21:02
【问题描述】:
人们问这个问题的帖子很多。但似乎大多数人在使用 ajax 请求进行跨域连接时遇到问题。我只是在同一个域上使用它,但仍然无法设法让 ajax 请求在我的移动浏览器上运行......不过它在桌面浏览器上运行良好。
这是我正在使用的代码:
Ajax 调用
$.ajax({
type: 'POST',
url: '/test/Stores/storeCheck',
data: $input,
dataType: 'json',
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function (data) {
alert("success");
},
error:function (xhr) {
alert("failed");
}
});
PHP 控制器 (cakephp)
function storeCheck () {
if ($this->request->is('ajax')) {
//Selecting values from the DB and returning them in $result
$this->autoRender = false;
return (json_encode($result));
}
}
在我的移动浏览器中,发出了 ajax 请求,它一直持续到出现错误事件,显示失败的警报弹出窗口。我已经尝试按照一些建议使用 JSONP,但没有成功。任何想法将不胜感激。
兄弟, 一个
【问题讨论】:
-
你能把失败的警报稍微改一下来调试吗?
error: function (jqXHR, textStatus, errorThrown) {console.log(jqXHR);console.log(textStatus);console.log(errorThrown)};并用回复更新问题? -
不知道它是否会帮助您解决问题,但过去我在 ajax 请求期间遇到过调试问题。
-
Nunser/Joshua,我在移动浏览器中调试时收到“解析错误,无法解析 JSON 字符串”。那有意义吗?难道我做错了什么?感谢您的帮助。
-
是的,该错误意味着您获得的响应不是 json 格式...试试这个,将
return (json_encode($result));更改为echo json_encode($result);并发布您收到的错误(如果有)请先注释我的调试代码。 -
改成 echo json_encode($result); 时出现的错误是“意外的令牌...)我相信无法识别“