1

私は今、この問題を何時間も解決しようとしています。情報を取得したいwikia Webを取得しましたが、json のみをサポートしており、xml や jsonp もサポートしていません。

私はすべてを試しました。jsonp として呼び出すと、クライアントが「SyntaxError: 無効なラベル」というエラーを返します。これは、サーバーがそれを jsonp または json としてまったく返さないためです。「callback=?」を追加すると URLに追加してjsonのままにしておくと、同じエラーが返されます。

これが私のコードの一部です(何度も変更しましたが、これまでのところ何も機能していません)

$('#searchBox').keydown(function() {
    $.ajax({
        type: "GET",
        url: "http://leagueoflegends.wikia.com/index.php?callback=?",
        data: {
            action: "ajax",
            rs: "getLinkSuggest",
            format: "json",
            query: "jungl"
        },
        success: function(json){
            alert("Success");
        },
        error: function(){
            alert("Error");
        },
        dataType: "json"
    });
});

更新 これが私の解決策です:(YQLを使用)

    var url = "http://leagueoflegends.wikia.com/index.php?action=ajax&rs=getLinkSuggest&format=json&query=jung"
    url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&format=xml';
    $.ajax({
        type: "GET",
        url: url,
        success: function(text){
            text = text.split("<p>")[1].split("</p>")[0];
            alert(text);
        },
        error: function(){
            alert("Error");
        },
        dataType: "text"
});
4

2 に答える 2

2

リモート サーバーが JSONP をサポートしていないか、CORS を許可していない場合は、要求をサーバー側でバウンスして、同一オリジン ルールをバイパスする必要があります。

于 2012-11-02T12:19:34.733 に答える
1

JSONP または CORS なしではクロスドメイン AJAX を実行できません。

それでも、バックエンドでHTTPプロキシをコーディングして、ユーザー(= js)の代わりにバックエンドでリクエストを行うことができます。

于 2012-11-02T12:19:13.723 に答える