(非常无知的问题,我坦率地承认)
我有一个简单的网页,上面有一个按钮和一个标签。当我单击按钮时,我想对一个完全不同的域(跨域,我知道很多)进行REST调用,并在标签中显示结果(HTML)。
使用其他API,我已经玩过使用JSON / P并动态添加元素,但是这个特殊的API不支持JSON,因此我不确定如何成功通过。
我的代码是:
function getESVData() {
$.get('http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=John+1', function (data) {
$('#bibleText').html(data);
app.showNotification("Note:", "Load performed.");
});
}
我收到“访问被拒绝”。无论如何在没有JSON的情况下成功调用此调用?
答案 0 :(得分:6)
首先,JSON和JSONP不一样。 JSON是一种表示信息的方式,JSONP是围绕同源策略的黑客攻击。 JSONP通过从另一个域请求信息来工作,并且该域返回一个脚本,该脚本使用该信息调用函数(使用您提供的名称)。您确实在您的网站上执行了另一个域提供给您的脚本,因此您应该信任其他域。
现在,在尝试制作跨域请求时,您基本上有3个选项:
根据您的情况,其他服务器不支持其他选项,您似乎必须使用选项3。