【问题标题】:Uncaught SyntaxError: Unexpected token < [duplicate]未捕获的语法错误:意外的令牌 < [重复]
【发布时间】:2018-02-12 07:22:52
【问题描述】:
 jsonp = (url, callback) => {
        var callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());
        window[callbackName] = function(data) {
            delete window[callbackName];
            document.body.removeChild(script);
            callback(data);
        };

        var script = document.createElement('script');
        script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + callbackName;
        document.body.appendChild(script);
    }

componentDidMount() {
 this.jsonp('https://www.naver.com', function(data) {
            alert(data.meta.description);
        });
}

但我明白了:

Uncaught SyntaxError: Unexpected token

我该如何解决这个问题?

【问题讨论】:

  • 您在哪一行得到错误?我在上面的 sn-p 中没有看到任何 &lt;
  • 错误出现在'componentDidMount()' 你必须写'function componentDidMount()'
  • 你没有忘记将代码从 JSX 转译成 JS?
  • 我替换了代码 omponentDidMount() { this.jsonp('naver.com'); } 但同样的错误发生...
  • 你是否在你的 babel 配置中启用了ES Class Fields &amp; Static Properties(目前是第 3 阶段)?

标签: javascript ajax reactjs jsonp


【解决方案1】:

在您的.babelrc 文件中

 {
    "presets":[
        "react-app"
    ]
}

然后 npm install --save-dev babel-preset-react-app

这是 create react 应用程序使用的内容,并且大部分已更新以处理最新语法。

【讨论】:

  • 这不会将https://www.naver.com处的HTML文档更改为JSONP。它仍然是 HTML。
猜你喜欢
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 2014-11-24
相关资源
最近更新 更多