2012-05-07 113 views
7

說實話,我是一個jQuery的初學者,現在我被卡住了。我想從我的HTML表單發送數據到PHP,它將數據添加到數據庫並返回一些我想要顯示在我的原始HTML上的值。這裏是我的代碼:jQuery ajax函數返回錯誤

$.ajax({ 
    type: "POST", 
    url: "http://mysite.com/process.php", 
    data: { data: mydata }, 
    cache: false, 
    dataType: "text", 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR.status); 
     alert(jqXHR.statusText); 
     alert(jqXHR.responseText); 
    }, 
    success: function(data){ 
     getContentBox().innerHTML = data; 
} 
}); 

它返回status = 0,statusText = 「錯誤」 和空responseText一個jqXHR對象。但是,我的PHP似乎工作,我看到我的數據插入我的數據庫。我究竟做錯了什麼?

任何幫助,將不勝感激。 在此先感謝!

編輯: Chrome控制檯說 XMLHttpRequest無法加載http://mysite.com/data.php。 Access-Control-Allow-Origin不允許原產地http://www.mysite.com

+0

你的php腳本發送了什麼標題?什麼輸出? – Fender

+0

你看過Firebug或其他工具中的請求/響應嗎? –

+0

PHP只是簡單地打印出文本(print $ data;)。 剛剛用Chrome瀏覽器請求: 狀態文本:(已被刪除) 類型:application/x-www-form-urlencoded; charset = UTF-8 – nXu

回答

1

謝爾比的評論導致我的解決方案:

當我嘗試使用絕對URL時,瀏覽器拒絕執行請求,我不得不將它寫爲相對。

$.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: { data: mydata }, 
    cache: false, 
    dataType: "text", 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR.status); 
     alert(jqXHR.statusText); 
     alert(jqXHR.responseText); 
    }, 
    success: function(data){ 
     getContentBox().innerHTML = data; 
} 
}); 

謝謝!

0

試試這個(你忘了關閉支架):

$.ajax({ 
    ... 
    success: function(data){ 
    getContentBox().innerHTML = data; 
    } 
}); 
+0

呃,真的,在我的腳本中它就在那裏,它只是一個複製粘貼錯誤。感謝壽。 – nXu

0

爲什麼不使用內置的jQuery的崗位功能來簡化這個即

  $.post('http://mysite.com/process.php', mydata, function(data) { 
       if (data.status == 1) { 
        getContentBox().html() = data; 
       } else { 
        alert(data.status); 
        alert(data.statusText); 
        alert(data.responseText); 
       } 
      }); 

林不知道你的狀態響應是這樣你可能需要編輯,但這將工作,如果你把它放在$('form here').submit(function() {POSTCODEHERE});

0

我有同樣的問題。 Ajax函數被綁定到<form>內部的按鈕(type =「submit」),所以當我按下這個按鈕時,我的頁面被重新加載,error函數工作,而不是success。我真的不知道這是如何相關的,但是當我將event.preventDefault()添加到按鈕的動作偵聽器並且它的工作正常。