簡體   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