zoukankan      html  css  js  c++  java
  • 如何使用yql实现跨域访问

    应用场景

    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
    • 如果返回结果是var obj={"id":123,"name":"test"}; 只需要jsonp就能解决这问题, 但接口是不可能变的,

    这种情况下, 如何解决这类问题

    雅虎的Yahoo Query Language (YQL)通过它可以把 Web 上的各种数据服务作为数据库表来查询,并获得结果。

    通过yql服务, 可以把https://openapi.baidu.com/api的内容再次封装, 还可以把接口返回的内容, 再次使用sql语句查询, 然后再通过yql服务返回最终结果

    • 具体使用方法:
    • 打开网址https://developer.yahoo.com/yql/
    • 找到示例, 把默认的示例替换成你自己的: select * from html where url='你要访问的api地址'
    • 然后点击Test, 就能看到Response里面已经有查询结果了
    • 还可以定制查询select id,name from html where url='你要访问的api地址', 定制返回结果
    • 最后复制Endpoint里面的链接大概是这样https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20urlles.org%2Falltableswithkeys
    • 最后, 把得到的链接地址复制到自己的js里面去执行就能正确拿到json

    $.getJSON("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20urlles.org%2Falltableswithkeys", function (data) {
        console.log(data);
    });

    到这就结束了, 已经能在控制台输出结果了


    这个解决方案不好的一点就是又通过了一次yql, 等于是yql先拿到结果, 然后又到浏览器, 中转了一次, 好的一点是不用自己再去动服务器代码

     

     

     

    友情赞助

    如果您喜欢此文,感觉对您工作有帮助,预期领导会给您涨工资,不妨小额赞助一下,让我有动力继续努力。

    赞助方式:打开支付宝App,使用“扫一扫”付款,付款码见下图,别忘了付款留言哦!


    或使用微信, 不用加好友就能付款

  • 相关阅读:
    mongdb aggregate聚合操作
    mongdb group聚合操作
    mongodb复制集
    springboot2.0数据制作为excel表格
    mongodb索引
    校招真题练习025 瞌睡(网易)
    校招真题练习024 牛牛的闹钟(网易)
    校招真题练习023 俄罗斯方块(网易)
    校招真题练习022 数对(网易)
    校招真题练习021 迷路的牛牛(网易)
  • 原文地址:https://www.cnblogs.com/zhouyalei/p/6379477.html
Copyright © 2011-2022 走看看