在 Xpages 上使用 jsonRpcService 时出错
Getting an error when using jsonRpcService on Xpages
我正在尝试使用 jsonRpcService 在控制台上打印一个值。只是为了测试。
但是当我调用该方法时,我在浏览器控制台上收到此错误:
POST http://localhost/Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! 400 (Bad Request)
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
错误图片如下:
http://i.stack.imgur.com/T5ekl.jpg
我已经搜索了很多解决此错误的方法,但一无所获。
这是我正在使用的代码:
<xe:jsonRpcService id="jsonRpcService1" serviceName="metodos"
pathInfo="RpcService">
<xe:this.methods>
<xe:remoteMethod name="teste" script="print('teste')"></xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
这是我在控制台上用来调用函数的代码
metodos.teste()
有谁知道我做错了什么?
谢谢
您必须在脚本中 return 一个值,并且您的客户端必须等待使用 回调 函数的响应.
这是一个工作示例:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:jsonRpcService
id="jsonRpcService1"
serviceName="metodos"
pathInfo="RpcService">
<xe:this.methods>
<xe:remoteMethod
name="teste"
script="return 'teste'">
</xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
<xp:button
value="Test"
id="button1">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[
var deferred = metodos.teste();
deferred.addCallback(function(result) {
alert(result);
});]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
当您单击按钮 "Test" 时,会出现一个警告框,其中显示消息 "teste"。
您可以像原来的 print('teste')
一样在 return 'teste'
之前添加额外的代码。该脚本只需要 return 东西...
我正在尝试使用 jsonRpcService 在控制台上打印一个值。只是为了测试。 但是当我调用该方法时,我在浏览器控制台上收到此错误:
POST http://localhost/Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! 400 (Bad Request)
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
Error: Unable to load /Teste.nsf/Teste.xsp/RpcService?$$viewid=!ei0pdt23xx! status:400(…)
错误图片如下: http://i.stack.imgur.com/T5ekl.jpg
我已经搜索了很多解决此错误的方法,但一无所获。
这是我正在使用的代码:
<xe:jsonRpcService id="jsonRpcService1" serviceName="metodos"
pathInfo="RpcService">
<xe:this.methods>
<xe:remoteMethod name="teste" script="print('teste')"></xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
这是我在控制台上用来调用函数的代码
metodos.teste()
有谁知道我做错了什么?
谢谢
您必须在脚本中 return 一个值,并且您的客户端必须等待使用 回调 函数的响应.
这是一个工作示例:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:jsonRpcService
id="jsonRpcService1"
serviceName="metodos"
pathInfo="RpcService">
<xe:this.methods>
<xe:remoteMethod
name="teste"
script="return 'teste'">
</xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
<xp:button
value="Test"
id="button1">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[
var deferred = metodos.teste();
deferred.addCallback(function(result) {
alert(result);
});]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
当您单击按钮 "Test" 时,会出现一个警告框,其中显示消息 "teste"。
您可以像原来的 print('teste')
一样在 return 'teste'
之前添加额外的代码。该脚本只需要 return 东西...