나는 해결책을 찾기 위해 모든 곳을 찾고 있었으며 모든 일을 올바르게하고 있다고 확신합니다.Laravel 5.x Ajax 배열이 작동하지 않음
내가 삭제할 컨트롤러에 채널을 통해 전달해야하는 배열의 ID 목록이 있지만 요청 개체는 항상 빈 배열을 제공합니다. $request->all()
하지만 요청 개체 자체를 덤프하면 관련 속성 및 메서드를 참조하십시오.
자바 스크립트
var data = [id: 14, id:77, id:138]; //We will convert this to a json string
$.ajax({
type : 'POST',
url : '/orders/cancel',
data : JSON.stringify(data), //Outputs [{"id":"x"},{"id":"x"}]
headers: { 'X-CSRF-TOKEN':token },
success: function(){ //the usual },
error: function(){ //the usual }
});
Laravel 경로
Route::any('/orders/cancel', '[email protected]');
감사관
namespace My\Namespace;
use Illuminate\Http\Request;
//other irrelavant `use` statements omitted
class BackOrderedOrdersController extends Controller
{
public function cancelAction(Request $request)
{
dd($request->all()); //This just outputs '[]' : empty array
}
}
응답 상태가 200 의미 다 괜찮되지만 게시 된 데이터가 일부 컨트롤러에 도달하지 않습니다 이유.
폼에서 오는 데이터가 없으면 Ajax Post에서 작업해야 할 때가 처음입니다. 또한 문제인지 여부에 대해서는 조금 주저합니다.
json으로 데이터 유형을 지정했을 때도 FIREBUG 출력으로 application/x-www-form-urlencoded;charset=UTF-8
으로 정의 된이 컨텐츠 유형이 내 내기가됩니다. 나는 부분적으로이 내용 유형과 인코딩이 수반되는 것이지만이 경우 무엇인지를 부분적으로 알고 있습니다.
누군가 데이터가 누락 된 부분에 대해 정확한 방향을 제시 할 수 있습니까? 그것은 JQuery 문제, Laravel 문제 또는 무엇입니까?
'Route :: post ('/ orders/cancel ','BackOrderedOrdersController @ cancelAction ');'를 사용해 보셨습니까? –