2012-07-18 60 views
0

我不知道如何最好地解釋這一點,所以忍受着我。JQuery Ajax調用失敗,但服務被擊中

我有一些javascript(使用jQuery)

$(document).ready(function(){ 
    $("#myForm").submit(function(){ 

     var request = $.ajax({ 
      url: "myPage.php", //sits on localhost 
      crossDomain: true, 
      type: "POST", 
      data: { 
      var1 : "foo", 
      var2 : "bar" 
      } 
     }); 

    request.done(function(res){ 
      alert("DONE"); 
    }); 

    request.fail(function(jqXHR , textStatus){ 
      alert(textStatus); 
    });  
} 

MyPage.php使用SoapClient的調用服務的下面。然後返回一些數據。

我可以直接從webBrowser調用MyPage.php並得到一個結果(失敗,因爲沒有POST數據)。

如果我嘗試從AJAX中創建MyPage.php調用並在我的服務中放置一個斷點,我看到該服務被調用並返回一個值。

但request.Fail ALWAYS調用。看起來,它只是直接跳到那個服務甚至可以完成之前的失敗。

我該如何補救?

+0

'$ .ajax'內置了名爲'success:'和'error:'的屬性,您可以將其用於這些目的。我不確定這是否是問題,但是可以嘗試。 – 2012-07-18 20:23:14

+0

我的代碼中實際上有':'。這是在不同的機器上沒有互聯網接入,所以我不得不手動輸入這個東西 – 2012-07-18 20:25:20

+0

你有冒號之間的數據:{}像這樣? – 2012-07-18 20:25:55

回答

1

我可能是錯的,但不是你錯過了數據和數據映射之間的冒號嗎?然後你應該在地圖裏面做key : value而不是key = value

1

你的語法是錯誤的,它應該是:

data: { 
     var1: "foo", 
     var2: "bar" 
     } 
+0

我實際上有':'正如我剛剛評論 - 仍然沒有骰子 – 2012-07-18 20:25:33

+0

@ PSU_Kardi您編輯的問題中的語法仍然是錯誤的。難道你不能複製並粘貼真實的代碼? – jeroen 2012-07-18 20:26:31

+0

@ jeroen,因爲他在評論中表示在沒有互聯網接入的機器上。 – 2012-07-18 20:27:18

0

我不知道爲什麼,但顯然從 $( 「#myForm會」)改變其提交(函數(){

。而且它移入功能SubmitForm(){...}

,然後從

打出電話修正了整個事情。謝謝你的建議。 ...