jQuery JSON AJAX请求到不同的域

时间:2015-11-01 15:25:31

标签: javascript jquery json ajax

我试图向https://api.mojang.com/users/profiles/minecraft/USERNAME发出一个AJAX请求,这应该返回JSON数据(不确定是否JSONP)

当我点击执行AJAX请求的按钮时,我得到了这个:

http://prntscr.com/8xswr1(谷歌Chrome控制台)

当我双击' dude1?回调...'我明白了:

http://prntscr.com/8xsx7q

包含我想要返回的JSON数据,这意味着我正在发出请求并获取JSON数据,但我无法解析它或获取信息

代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Website</title>
        <script src="https://code.jquery.com/jquery-2.1.4.js"></script>
        <script>
            function getInfo() {
                username = $('#username').val();
                $.ajax({
                    type: 'GET',
                    url: "https://api.mojang.com/users/profiles/minecraft/" + username,
                    //crossDomain: true,
                    dataType: 'jsonp',
                    success: function (data) {
                        alert(data.name);
                    }
                });
            }
        </script>
    </head>
    <body>
        <form>
            Username: <input type="text" id="username" name="username"/>
        </form>
        <button onclick="getInfo();">Submit</button>
        <span id="info">

        </span>
    </body>
</html>

另外,如果我更改了&#39; dataType&#39;参数到&#39; json&#39;我收到这个错误 http://prntscr.com/8xsy9e

1 个答案:

答案 0 :(得分:1)

  

这应该返回JSON数据(不确定是否JSONP)

这是JSON。

  

当我点击将执行AJAX请求的按钮时,我得到了这个

这是尝试执行JSON的典型错误,就好像它是JSONP一样。

  

当我双击&#39; dude1?回调...&#39;我明白了

是的,JSON。不是JSONP。

  

另外,如果我更改了&#39; dataType&#39;参数到&#39; json&#39;我收到此错误

是的,您要求提供数据的网站并不允许您的网站使用访问者的浏览器阅读该网站。

跨域Ajax要求您从中获取数据的网站与您合作提供。

改为使用您的服务器获取数据。