我正尝试致电此Instagram网站,以返回用户信息:https://www.instagram.com/therock/?__a=1,所以这就是为什么我将ajax与JSONP而不是JSON一起使用以避免CORS问题的原因。

这是我基于a question asked here的答案所做的:

<script>
    $(document).ready(function(){
        $.ajax({
            url: 'https://www.instagram.com/therock/?__a=1',
            dataType: 'jsonp',
            jsonpCallback: 'callback',
            type: 'GET',
            success: function (data) {
                console.log(data);
            }
        });
    })
</script>


我也尝试更改为此调用:

    $.ajax({

        url: "https://www.instagram.com/therock/?__a=1",
        type: "POST",
        jsonpCallback: 'jsonpCallback',
        dataType: "jsonp",
        success: function (result) {
          console.log(result)

        },

    });


最后,我尝试不使用Ajax使用jsonp:

var $jsonp = (function(){
  var that = {};

  that.send = function(src, options) {
    var callback_name = options.callbackName || 'callback',
      on_success = options.onSuccess || function(){},
      on_timeout = options.onTimeout || function(){},
      timeout = options.timeout || 10; // sec

    var timeout_trigger = window.setTimeout(function(){
      window[callback_name] = function(){};
      on_timeout();
    }, timeout * 1000);

    window[callback_name] = function(data){
      window.clearTimeout(timeout_trigger);
      on_success(data);
    }

    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.async = true;
    script.src = src;

    document.getElementsByTagName('head')[0].appendChild(script);
  }

  return that;
})();


并以这种方式调用函数,但不幸的是总是返回超时:

$jsonp.send('https://www.instagram.com/therock/?__a=1?callback=handleStuff', {
    callbackName: 'handleStuff',
    onSuccess: function(json){
        console.log('success!', json);
    },
    onTimeout: function(){
        console.log('timeout!');
    },
    timeout: 5
});


在这里在StackOverflow中搜索或谷歌搜索有关使用JSONP的不同问题时,我已经尝试了许多可能性。非常感谢您的帮助,在此先感谢。

最佳答案

我认为您的JSONP网址响应数据不是标准的jsonp数据格式。它是纯json格式,即打开页面后始终会出现js错误。您可以尝试将url响应数据修改为标准jsonp格式,右侧为JSONP_CALLBACK_FUNCTION(JSON字符串数据)

关于javascript - JSONP调用instagram网站将返回Uncaught SyntaxError:意外 token :,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46128740/

10-09 18:13
查看更多