我试图解决此问题数小时。我得到了一个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代理。