2015-02-18 22 views
7

Khi tôi chuyển dữ liệu POST qua AJAX tới bộ điều khiển của tôi, nó trống. Trong AJAX dữ liệu vẫn còn ở đó nhưng sau khi tôi gửi cho nó bộ điều khiển nó nói nó trống.Yêu cầu POST của Laravel AJAX trống

AJAX:

function usernameCheck() 
{ 
    var input = document.getElementById("usernameInput"); 
    var icon = document.getElementById("userIcon"); 
    var xmlhttp, 
     username = document.getElementById("usernameInput"), 
     message = document.getElementById("usernameMessage"); 

    if (username.value != "") { 
     if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } else { 
      // code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) { 

       // FOR DEBUGGING 
       console.log(xmlhttp.responseText); 

      } 
     } 
    } 

    xmlhttp.open("POST", "usernamevalidation", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send("username=" + username.value); 
    } 
    } 

Routes.php:

Route::post('usernamevalidation', '[email protected]'); 

UserController.php:

class UserController extends BaseController { 

    public function validateUsername() { 

     // FOR DEBUGGING 
     dd(Input::all()); 

    } 
} 

Mã mà tôi console.logged (đó là trống rỗng và nên chứa tên người dùng):

<pre class='xdebug-var-dump' dir='ltr'> 
<b>array</b> <i>(size=0)</i> 
    <i><font color='#888a85'>empty</font></i> 
</pre> 
+0

Hãy thử 'dd (\ Request :: getContent))' và xem những gì cung cấp cho bạn. – Dencker

+0

gỡ lỗi yêu cầu ajax trước. Mở bảng điều khiển trình duyệt của bạn và kiểm tra yêu cầu ajax Dữ liệu biểu mẫu trong Tiêu đề. – SKG

+1

nó mang lại cho tôi một lỗi máy chủ nội bộ 500, tôi đã thử nó với đồng bằng php $ _REQUEST, và đó là sản phẩm nào quá. –

Trả lời

3

Trong nhận thức rằng tôi đưa ra câu trả lời của tôi ở đây một năm sau kể từ bình luận cuối cùng, tôi đã tình cờ gặp một số lỗi bằng cách sử dụng Laravel 5.2 và làm việc với các đối tượng XMLHttpRequest: cuối cùng tôi đã kết thúc để phân tích và so sánh các tiêu đề yêu cầu bài , điều này đã khiến tôi chỉ cần đặt cả hai:

xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'); 

Điều đó đã giải quyết được khoảng trống responseText của tôi. Hy vọng điều này có thể giúp người khác hoặc có thể được sử dụng để tham khảo trong tương lai.

+0

tại điểm nào trong mã là bộ này? – Pila

+0

@Pila, quan sát danh sách mã của OP, bạn nên gọi 'setRequestHeader' trên đối tượng' XMLHttpRequest' sau khi gọi phương thức 'mở' của nó. – wiredolphin