2016-11-01 3 views
1

У меня есть проект в Laravel, где я пытаюсь работать с spid-api с помощью Javascript SDK. Я использую КДС для API:Javascript - define не определен cdn

<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(…)

Я читал здесь на SO, что это вызвано тем, что я использую require.js. Как я могу заставить обе работать без ошибок?

ответ

1

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.

No Require.JS обеспечивает среду AMD. Он не работает, потому что вы не с использованием Require.JS (по крайней мере, не в том месте, где вы пытаетесь загрузить сценарий, зависящий от AMD, вам может потребоваться изменить ваши элементы <script>, чтобы вы не пытались используйте define до тех пор, пока вы его не загрузите).

Смежные вопросы