我在这个onclick事件中调用goog.net.XhrIo
goog.events.listen(invBtn, goog.ui.Component.EventType.ACTION,
function(e) {
goog.net.XhrIo.sent('http://remotehost.com:8080/customer/add');
(update :typo here send instead of sent )
这是我想要完成的非常基本的任务,但此调用甚至无法到达服务器。我也尝试将url作为goog.Uri传递,但没有帮助。 我想知道是什么停止向服务器发出此调用,我尝试了主机名和IP地址,但都没有帮助。它什么也没做。
我能做些什么来了解为什么这个电话甚至无法到达服务器。
感谢任何帮助
问候 埃迪
答案 0 :(得分:2)
在plovr配置文件中,将警告级别设置为VERBOSE
:
// config.js { "paths": "js", "mode": "ADVANCED", "level": "VERBOSE" }
启用VERBOSE
警告后,运行程序会显示以下警告:
JSC_INEXISTENT_PROPERTY: Property sent never defined on goog.net.XhrIo ... goog.net.XhrIo.sent('http://remotehost.com:8080/customer/add'); ^
尝试将goog.net.XhrIo.sent();
更改为goog.net.XhrIo.send();
。
此外,您可能希望将回调函数传递给XhrIo发送函数,如下所示:
goog.net.XhrIo.send('http://remotehost.com:8080/customer/add', function(e) {
var xhr = /** @type {goog.net.XhrIo} */ (e.target);
alert(xhr.getResponseText());
});
另一种常见模式是创建一个xhr对象并注册一个事件监听器:
var xhr = new goog.net.XhrIo();
goog.events.listenOnce(xhr, goog.net.EventType.COMPLETE, function(e) {
var xhr = /** @type {goog.net.XhrIo} */ (e.target);
alert(xhr.getResponseText());
xhr.dispose(); // Dispose of the XHR if it is not going to be reused.
});
xhr.send('http://remotehost.com:8080/customer/add');
Closure: The Definitive Guide,第7章: 客户端 - 服务器通信