我正在尝试使用我的portlet javascript代码调用json网络服务:
js/main.js中,我有:

   Liferay.Service(
  '/Basic-portlet.hello/remote-hello',
  {
    name: ''
  },
  function(obj) {
    console.log(obj);
  }
);


每当将页面添加到页面时,当我将portlet添加到页面时,此调用仅执行一次。

Uncaught TypeError: undefined is not a function
A.mix.parseIOConfig
A.mix.parseInvokeArgs
Service    main.js?browserId=other&lan....
(anonymous function)

最佳答案

当您尝试从上下文中调用Liferay JSON Web服务而无权访问AlloyUI时,我已经看到这种情况。

添加以下AUI导入:

<script src="http://cdn.alloyui.com/2.0.0/aui/aui-min.js"></script>


然后像这样包装您的服务调用:

AUI().use('aui-base', function(A){
  // Liferay Service invocation here
});


例如。,

AUI().use('aui-base', function(A){
  Liferay.Service(
    '/user/get-user-by-email-address',
    {
      companyId: Liferay.ThemeDisplay.getCompanyId(),
      emailAddress: '[email protected]'
    },
    function(obj) {
      console.log(obj);
    }
  );
});

09-03 21:11