javascript - 从网站检索 jsonP 数据的简单示例

标签 javascript json jsonp

我已经看过很多 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/

相关文章:

javascript - CSS 菜单居中

结合正则表达式和字符串的 Javascript

javascript - django rest框架上传文件

c# - WCF 错误 : 405 Method Not Allowed

jquery - 使用 jQuery 和 JSONP 从不同服务器上的文本文件检索数据

javascript - 如何用json数据填充select?

javascript - chrome onAuthRequired 不触发

python - Pandas 数据帧 : normalize one JSON column and merge with other columns

json - 如何分析 Web 服务?

javascript - 无法读取 AJAX 调用中未定义的属性 'setState'