Javascript - 定义不是从cdn定义的

时间:2016-11-01 10:10:13

标签: javascript laravel

我在Laravel有一个项目,我尝试使用Javascript SDK与spid-api合作。我正在使用cdn作为api:

<script type="text/javascript" src="http://cdn.spid.se/sdk/spid-sdk-2.1.0-amd.js"></script>

然后试图像这样启动它:

$(document).ready(function(){

  // Add event subscribers
  SPiD.event.subscribe('SPiD.login', function(data) { console.log(data); });
  SPiD.event.subscribe('SPiD.logout', function(data) { console.log(data); });
  SPiD.event.subscribe('SPiD.sessionChange', function(data) { console.log(data); });

  //Initiate SDK
  SPiD.init({
    client_id: 'myClientId',
    server: 'https://payment.schibsted.no'
  });
  // Check session
  SPiD.hasSession();

});

但我明白了:

  

spid-sdk-2.1.0-amd.js:1未捕获的ReferenceError:define不是   defined(...)(匿名函数)@spid-sdk-2.1.0-amd.js:1 spid.js:4   未捕获的ReferenceError:未定义SPiD(...)

我在这里读到,它是因为我使用的是require.js。如何才能使两者都没有错误?

1 个答案:

答案 0 :(得分:1)

documentation lists a number of hosting options

您已选择AMD选项,但未在AMD环境中运行代码。 (如果你是,将定义define。)

使用另一个(您可能需要“常规全局变量版本”)。

  

我在这里读到,这是因为我使用的是require.js。

没有。 Require.JS提供AMD环境。它不起作用,因为使用Require.JS(至少,在您尝试加载AMD依赖脚本时,您可能只需要重新排列{{1} }元素,所以在加载之前不要尝试使用<script>