2016-02-23 63 views
1

這是FAR中我遇到過的最奇怪的問題。由於代碼是完美的,我完全感到困惑。我測試了一百種不同的東西,它歸結爲ajax文章到php文件之間的東西。Jquery使用字母「rc」的Ajax數據不發送到php

「logged_lg」輸入是用戶名。除了以「rc」開頭的登錄外,每個登錄都是有效的。巧合的是,我的名字首字母是「rcs」,所以你可以看到我是如何遇到這種情況的。我認爲這是由於我的平臺上有多個帳戶,但我全部刪除了它們,並且沒有一個帳戶內部包含「rc」。我將重申,只有開頭字母「rc」或「RC」或「rC」等,才能使此功能無法通過。 beforesend函數不斷顯示加載器。

請保留在我的地址我沒有發佈明顯的原因,所有的代碼。

var formData = { 
    'ldata' : $('input[name=logged_lg]').val(), 
    'password' : $('input[name=password]').val() 
}; 
    $.ajax({ 
     type : 'POST', // define the type of HTTP verb we want to use 
     url : '/log-in/logchk.php', // the url where we want to POST 
     data : formData, // our data object 
     dataType : 'json', // what type of data do we expect back from the server 
     encode : true, 
     beforeSend: function(){ 
      $(".form_info .error").hide(); 
      $(".form_info").show(); 
      $(".form_info .loader").show(); 
     } 
} 

這是從PHP文件。

$lgfroto = mysql_real_escape_string($_POST['ldata']); 
$hdmain_lg = mysql_real_escape_string($_POST['password']); 

即使當我更換了lgfroto值以「rcsnooks」作爲一個用戶,在登錄工作。我也有錯誤處理程序的工作,我試過。

if ($lgfroto == "rc"){ 
    $errors['email'] = 'is rc.'; 
} 

我在rc中輸入字段以查看它是否會通過,但它不會通過beforesend函數。任何其他角色的工作。

下面是表單代碼的一些(重要部分),我看不出會發生什麼錯誤,但只是你可以看到。

<form id="form" action="/log-in/logchk.php" method="post" enctype="multipart/form-data"> 

<div id="email-group"> 
<div class="input_row"> 
    <input type="text" tabindex="1" value="Username or Email" name="logged_lg" class="input_text idleField"> 
</div> 
</div> 
<div id="pw-group"> 
<div class="input_row pw_it"> 
    <input type="text" tabindex="1" value="Password" name="password" class="input_text idleField pw_it"> 
</div> 
+0

那麼'$ .ajax'中的'encode'選項是什麼? – adeneo

+0

另外,你需要在ajax調用中附加一個'done'和'fail'函數,並且控制檯記錄結果,看看爲什麼不發送請求 – adeneo

+1

你看過發送給服務器的內容開發者控制檯中的網絡標籤?你看過答覆嗎? – epascarello

回答

1

想通了。

適用於任何遇到問題的人。 Jquery不喜歡通過變量名'ldata'來解決一些混亂的原因,並且沒有關於這個的文檔。

'ldata' : $('input[name=logged_lg]').val(), 
'password' : $('input[name=password]').val() 

其他每個變量名稱都可以正常工作。完全瘋狂。