如何在FBML静态页面内执行页面加载脚本?
我想要做的是在页面加载并显示一些数据时对我的应用程序进行ajax调用。
我尝试了以下脚本,但它不起作用。我既没有成功也没有错误
<script type="text/javascript"><!--
var ajax = new Ajax();
ajax.responseType = Ajax.JSON;
ajax.ondone = function(data) {
new Dialog().showMessage("Success", "Got Response");
}
ajax.onerror = function(data) {
new Dialog().showMessage("Error", "Failure");
}
ajax.requireLogin = false;
ajax.post('http://www.xyz.com/abc');
//--></script>
如果我将它作为一个功能并通过单击它调用它可以工作,我得到一个成功的消息
<a href="#" onclick="on_load(); return false;">Click</a>
<script type="text/javascript"><!--
function on_load() {
var ajax = new Ajax();
ajax.responseType = Ajax.JSON;
ajax.ondone = function(data) {
new Dialog().showMessage("Success", "Got Response");
}
ajax.onerror = function(data) {
new Dialog().showMessage("Error", "Failure");
}
ajax.requireLogin = false;
ajax.post('http://www.xyz.com/abc');
}
//--></script>
答案 0 :(得分:1)
你应该使用FBJS(Facebook版的JS)。您可以找到有关ajax call here
的文档它会像
<script><!--
var ajax = new Ajax();
ajax.ondone = function(data) {
//do something
}
ajax.post('http://example.com/testajax.php');
//-->
</script>
<强>更新强>
尝试添加下一行,以确保这不是服务器错误和响应类型。
req.responseType=Ajax.FBML;
ajax.onerror=function(data){
alert("Something went wrong. Please, try again.");
}
ResponseType 可以是Ajax.RAW,Ajax.JSON或Ajax.FBML之一。
您使用的是FireBug吗?您是否看到对服务器的调用或任何JS错误?
<强>更新强>
如果问题是在页面上传事件中运行它。您应该将脚本放在页面的末尾。像here描述的东西。