2009-05-23 52 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

相關問題