javascript - 在 Ajax 调用中解析返回数据时出现 token 错误

标签 javascript jquery json jquery-mobile cordova

我正在使用 HTML、jQuery Mobile、jQuery 和 Cordova 创建一个应用程序。我的要求是通过调用远程服务器来对应用程序中的用户进行身份验证。我正在开发我的本地主机 WAMP 堆栈。

我的 jQuery 如下。

$.ajax({
    type: 'POST',
    url: 'http://localhost/server/',
    crossDomain: true,
    data:{appkey:'1234567',action:'authenticate', username: u, password :p},
    dataType: 'jsonp',
    async: true,
    success: function (data){
        console.log(data);
     },
     error: function (jqXHR, textStatus, errorThrown) {
         alert("Invalid Username or Password");
         window.location = "index.html";
     }
});

远程调用网址如下。 JQuery 会自动将 ?callback= 添加到远程 url,因为数据类型是 jsonp,这很好。

localhost/server/?callback=jQuery18306688079617451876_1383495199431…4567&action=authenticate&username=fdf&password=fdfdf&_=1383495208981

来自远程 URL 的响应在 Chrome 开发者控制台中如下所示。

{"success":"false"}

在服务器的 PHP 部分,我使用以下代码返回 json 对象。

header('Content-type: application/json');
echo json_encode($araryVal);

在我看来,一切都很完美,但我的代码断点从未到达 ajax 调用的成功部分。它总是在错误部分爆发。

在开发人员控制台中我看到错误消息。

Uncaught SyntaxError: Unexpected token :

JsonLint 表示 json 有效。请让我知道我在做什么傻事。

最佳答案

我不认为你的数据类型是JSONP,它只是JSON。如果是 JSONP,您的内容类型应该是“application/javascript”,并且您的响应文本应该包装它返回的 JSON 对象,并在回调参数中提供给服务器的 javascript 函数。

(实际上,您的错误可能是 PHP 发出有关 undefined variable 的通知:araryVal ...您确定不应该是 arrayVal?:)

关于javascript - 在 Ajax 调用中解析返回数据时出现 token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755262/

相关文章:

javascript - Immutable.js或Lazy.js是否执行捷径融合?

JavaScript 性能长时间运行的任务

javascript - 关于院长爱德华兹帕克的问题

php - 为什么我无法以 json 形式访问

java - REST 样式 URL 的首选方法?

javascript - 有没有办法从数组中提取对象并放入新数组中?

javascript - 使用 JSTree 上下文菜单捕获新创建的节点

javascript - jQuery 更改 $(this) 对象中的 html

Javascript 仅在外部文件中失败

json - 嵌套 json 对象的 Elasticsearch 映射