当服务器不支持JSONP时,跨域请求



我试图解决此问题数小时。我得到了一个Wikia Web,我想从中获得东西,但它仅支持JSON,甚至不支持XML或JSONP。

我尝试了一切。如果我称其为JSONP,我的客户端返回错误" SyntaxError:无效标签",因为服务器根本不会将其返回为JSONP或JSON。如果我添加"回调=?"到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"
});

如果远程服务器不支持JSONP或允许CORS,则您必须弹跳请求服务器端才能绕过相同的Origin规则。

没有JSONP或CORS。

尽管如此,您可以在后端代替后端而不是用户(= js)来编码HTTP代理。

相关内容

  • 没有找到相关文章

最新更新