我已经看过很多 JSONP
的示例,但我似乎无法让任何示例适用于我的网站。它可以在某个网址生成 JSON
代码,但我无法从不同的域检索它。您能否给我一个 JSONP
的工作示例,它可以从任何 JSON
文件检索数据(例如 www.w3schools.com/json/myTutorials.txt )。
我可能不完全理解,但我至少需要一个解释,为什么如果我用上面的示例替换 url,则不会提取任何数据。
最佳答案
这是 jquery docs 中示例的修改版本使用雅虎公共(public) API。
$.ajax({
url: "https://query.yahooapis.com/v1/public/yql",
// Tell jQuery we're expecting JSONP
dataType: "jsonp",
// Tell YQL what we want and that we want JSON
data: {
q: "show tables",
format: "json"
},
// Work with the response
success: function( response ) {
console.log( response ); // server response
}
});
连同 jsbin: https://jsbin.com/tuketa/edit?js,output
JSONP 存在的原因是为了绕过 CORS 规则的限制。出于安全原因,您的浏览器通常只允许与其加载页面的服务器进行通信。 JSONP 的创建是为了解决这个问题,方法是为服务器提供一个回调函数来填充 JSON 数据,因此 JSONP 中的 P。
正如 jasonscript 的评论中所指出的,它不是任何可以使用 JSONP 的服务器,它必须配置为能够使用 JSONP,例如示例中的 Yahoo API。
关于javascript - 从网站检索 jsonP 数据的简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690202/