繁体   English   中英

使用Trakt.tv api中的jsonp从jQuery $ .ajax post return获取parseerror

[英]Getting a parseerror from jQuery $.ajax post return using jsonp from Trakt.tv api

使用Trakt.tv API。 看来我可以验证身份时正在发送有效的json,但收到的返回消息是解析错误。

Resource interpreted as Script but transferred with MIME type text/html: 
http://api.trakt.tv/recommendations/shows/myApiKeyCompleteNumbers?callback=jQuery111000155555475132972_1397674204444&{%22username%22:%22userName%22,%22password%22:%22mySha1PassComplete%22}&_=1397674207093

Uncaught SyntaxError: Unexpected identifier 

回报说:

Disallowed Key Characters.

我正在使用:jQuery 1.11.0

在此先感谢您的帮助或指导

$(document).ready(function () {

    function success(data) {
        alert('data: ' + data);
    }

    var traktUser = 'myUserName';
    var traktHash = 'mySha1Password';
    var traktApi = 'myApiKey';
    var data = {
        'username': traktUser,
        'password': traktHash
    };
    var postData = JSON.stringify(data);
    var apiUrl = 'http://api.trakt.tv/recommendations/shows/' + traktApi;

    $.ajax({
        type: 'POST',
        url: apiUrl,
        data: postData,
        contentType: 'application/json',
        dataType: 'jsonp',
    }).
    done(success);

}); //document ready

您无法使用JSONP发出POST请求,jQuery忽略了POST指令并发出GET请求。

您的数据被放置在查询字符串中,并且未正确进行URL编码。

服务器正在响应包含错误消息的HTML文档,而不是根据JSONP规则格式化的JavaScript脚本。


您要使用的API似乎根本不支持JSONP。 由于您在请求中传递了自己的用户凭据,因此这很有意义。 JSONP是一种可解决由浏览器实现的同源策略的黑客(如今我们可以改用CORS),除非您希望最终用户浏览器直接访问API,否则使用它毫无意义。 由于最终用户浏览器无法在没有用户名和密码的情况下访问它,因此似乎不太可能以这种方式使用它。

而是从服务器上的API处理数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM