Javascript - 定义不是从 cdn 定义的

标签 javascript laravel

我在 Laravel 中有一个项目,我正在尝试使用 spid-api通过使用 Javascript SDK。我正在使用 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 Uncaught ReferenceError: define is not defined(…)(anonymous function) @ spid-sdk-2.1.0-amd.js:1 spid.js:4 Uncaught ReferenceError: SPiD is not defined(…)

我在这里读到,这是因为我正在使用 require.js。我怎样才能使两者都正常工作?

最佳答案

documentation lists a number of hosting options .

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

使用不同的版本(您可能需要“常规全局变量版本”)。

I read here on SO, that it is caused because I am using the require.js.

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

关于Javascript - 定义不是从 cdn 定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357923/

相关文章:

javascript - 如何将以 0 开头的数字转换为与该值等效的字符串?

javascript - 最后的 'SetItem'不保存,刷新页面时清除

javascript - 将对象推送到数组中

javascript - 按下 `button--reset` 后文本未更改

javascript - 单击时弹出一个单选按钮

php - 如何从原始查询中检索结果集作为数组而不是 Laravel 3 中的对象

laravel - 如何在 Laravel 中测试将假文件上传到验证文件的路由?

javascript - Vue.js 脚本在 Laravel 5.5 中不执行任何操作

php - 按类型分割的用户偏好

php - 您的 Composer 依赖项需要 PHP 版本 ">= 8.0.0"。您正在运行 7.4.11