Javascript 原型Ajax。在某些情况下不执行请求

Javascript 原型Ajax。在某些情况下不执行请求,javascript,prototypejs,Javascript,Prototypejs,在index.php的底部,在成对的标记之间有一个Javascript函数。我有一个单击处理程序,它调用发出Prototype.jsAjax请求的函数 尽管调用了myFunction本身,但此版本不起作用(未发出任何请求) function myFunction(fr, fw) { new Ajax.Request('/ascript', { method: 'post', parameters: { a: fr, b: fw }, on

在index.php的底部,在成对的
标记之间有一个
Javascript
函数。我有一个单击处理程序,它调用发出
Prototype.js
Ajax请求的函数

尽管调用了
myFunction
本身,但此版本不起作用(未发出任何请求)

function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { }, 
        onFailure: function(request) { }
    });
}
function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { alert("here"); }, 
        onFailure: function(request) { }
    });
}
但是,当我添加警报(“某物”);第行调用ascript php脚本

function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { }, 
        onFailure: function(request) { }
    });
}
function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { alert("here"); }, 
        onFailure: function(request) { }
    });
}

可能是一些奇怪的空格问题吗?我的语法有错误吗?

您应该尝试完成
事件。原型有时不属于成功时的
onSuccess
或失败时的
onFailure
,但所有请求都将包含在
onComplete


还可以尝试使用
try-Catch
块包装ajax请求,这可能会有所帮助。

因此我发现了问题。问题在于我如何将eventhandler添加到我的“按钮”

最初(关于我问题中给出的两个例子),我有:

echo”“;
周围有链接标签的
当然是个坏主意

这项工作:

echo "<a href='' onClick='Event.stop(event);'><p id='button' onclick='myFunction(" .$a .", " .$b .");'>Click</p></a>";
echo”“;

谢谢大家的回答。我想这个故事的寓意是,让eaven远离Javascript本身,看看它在哪里被调用,哪里可能被破坏。

你怎么知道请求没有被提出?您是否尝试过安装Firefox“TamperData”插件来跟踪HTTP请求,甚至Firebug?像这样简单地更改回调应该不会影响是否发出HTTP请求,因此要么正在发出,要么第二次测试有其他不同之处。发出请求的脚本是我自己的,我在那里有错误日志语句,我可以看到它没有被排除。try catch没有帮助,添加了警报(onComplete的“Blah”)以相同的结果结束-开始工作。但我不希望每次请求完成时都显示警报:)