我在 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/