2009-05-23 50 views
2

这里是一个示例用例:我可以在我的请求的javascript中访问我的ajax请求的href吗?

我通过ajax请求请求一个简单的表单。我想将结果提交到我请求的相同页面。有没有办法在结果请求的javascript中访问该请求的URL?

下面是一些代码,通过JavaScript和PHP实现我想要的功能。这样做的缺点是我必须将我的javascript包含在与myajaxform.php相同的文件中。我宁愿分开它,所以我可以缩小,让它缓存等。

我不能使用location.href,b/c它指的是窗口的位置而不是最新的请求。

frm.submit(function() { 
    if (frm.validate()) { 
     var data = frm.serialize(); 
     jQuery.ajax({ 
      url : '<?= $_SERVER['PHP_SELF'] ?>', 
      type : 'POST', 
      data : data, 
       dataType: "html", 
      success : function (data) { 

      } 
     }); 
    } 
    return false; 
}); 

如果不通过JavaScript直接访问它的方式,你会如何解决这个问题,以便JavaScript可以在它自己的文件中去?我想我可以在原始的ajax请求的成功处理程序中创建对URL的某种引用。思考?也许使用jQuery数据方法的东西?

回答

3

可以存储URL提交表单的action属性,然后设置urlfrm.action

jQuery.ajax({ 
      url : frm.action, 
      type : 'POST', 
      data : data, 
      dataType: "html", 
      success : function (data) { 
      } 
}); 
+0

啊,是的...简单明了的答案。只是

”第一个...:P 谢谢! – 2009-05-23 02:19:31

0

原谅我,如果我完全曲解你的问题,因为我觉得有点混淆。什么

frm.submit(function() { 
    if (frm.validate()) { 
     var data = frm.serialize(); 
    jQuery.ajax({ 
      url : window.location.href, 
      type : 'POST', 
      data : data, 
      dataType: "html", 
      success : function (data) { 

      } 
    }); 
    } 
    return false; 
}); 
+0

window.location.href将指向窗口的位置,而不是ajax请求的URL ... thx虽然 – 2009-05-23 02:27:47

相关问题