2013-04-01 47 views
0

這對返回null駕駛我瘋了!我的代碼適用於我的電腦,適用於在線服務器,但在另一臺服務器上返回null!jQuery的阿賈克斯成功的特定功能服務器

任何想法??

這裏是jQuery的Ajax代碼:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#signup').submit(function() { 
     $.ajax({ 
      url: 'mailchimp.php', 
      data: 'ajax=true&email=' + escape($('#email').val()) + '&phone=' + escape($('#phone').val()) + '&uname=' + encodeURIComponent($('#uname').val()) , 
      success: function(msg) { 
       $('#form').html(msg); 
      } 
     }); 

     return false; 
    }); 
}); 
</script> 

我通過直接鍵入URL測試mailchimp.php;它工作正常,並按照預期迴應結果。

謝謝

+0

調試這在PHP端,例如,把它寫在數據傳遞到本地文件或日誌。我不認爲jQuery會與此有任何關係。雖然,您應該將請求聲明爲POST或GET,以確保按照服務器期望的方式發送請求。 –

+0

檢查來自瀏覽器的請求,觀察數據和內容類型已要求什麼,什麼響應返回。 –

回答

0

嘗試給絕對路徑的URL和嘗試。我可能是錯的,但值得一試。

0

你發佈跨域?那麼你應該使用JSONP http://en.wikipedia.org/wiki/JSONP

+0

我注意到,當我進入阿拉伯語文字後不會發生!它在我輸入英文時起作用。我沒有發佈跨域。 –

0

我仍然不知道有什麼確切的問題,但它似乎是AJAX後沒有被歸因於由encodeURIComponent函數生成的百分比符號的存在執行。

以下是我在阿賈克斯的功能一樣。我用連字符替換了所有的%符號。

uname = uname.replace(/\%/g, '-'); 

而在我的PHP代碼中,我放回所有的%符號而不是連字符。

urldecode(str_replace('-', '%', $_GET['uname'])) 

也許這不是最好的解決辦法,但最後的作品:)