如何跨域获得新浪股票数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="http://127.0.0.1/jquery-3.3.1.min.js"></script>
    <script>
function stock(){
    code1 = $("#code").val();
    if( parseInt(code1).toString().length == 6 && code1.length == 6 ){
        $.ajax({
            type:"GET",
            url:"http://hq.sinajs.cn/list=sh" + $("#code").val(),
            beforeSend:function(){$("#price").html("正在查询");},
            cache:false,
            success:function(data){
                alert(data);
                str = data.substring(data.indexOf("\"")+1,data.length -1).split(",");
                $("#stock").html(str[0]);
                $("#price").html(str[3]);
            }
        });
    }
else{
    alert("输入有错误");
    setTimeout(stock,8000);
    }
}   
    
    </script>
</head>
<body>
    股票代码:
    <input id="code" type="text" size="10">
    <input id="Search" type="button" onclick="stock()" value="查询">
    <br/>
    股票名称:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="stock"></span>
    股票价格:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="price"></span>

</body>
</html>

我想跨域调用http://hq.sinajs.cn/ 接口,获得股票数据。
输入一个股票代码600020

报错
Failed to load http://hq.sinajs.cn/list=sh60...: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1' is therefore not allowed access.

请问,如何修改我的ajax?

阅读 3.1k
2 个回答

建议通过后端nginx代理来实现, 前端是没法改的, 除非你改浏览器或改新浪的接口

兄弟可以试试JSONP,但有些是可以的有些不一定能跨过去。祝你好运,还有如果非得代理的话 作为一个前端攻城狮我希望你用node.js,不会的话可以学习一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题