2016-01-11 24 views
0

我很困惑。請幫幫我。爲什麼laravel5中的json響應中有meta標記

我有這樣的Java腳本代碼:

$(document).ready(function(e) { 
 
    $('#requestButton').click(function(e) { 
 
     $.ajax({ 
 
       type: "POST", 
 
       dataType:"json", 
 
       data:{job:'propertyCreation' }, 
 
       url: "/testajax", //Relative or absolute path to response.php file 
 
       success: function(data) 
 
       { 
 
        alert(data.responseText); 
 

 
       },//success 
 
       error:function(e){ 
 
        alert(e.responseText); 
 
       } 
 
      }//ajax 
 
     );//ajax 
 
    }); 
 
});

在我的控制器Testajax功能是負責上述Ajax請求回答到。

public function testajax(Request $request) 
 
{ 
 
    if ($request->isMethod('post')){ 
 
     $result=array('success'=>true,'response'=>$_REQUEST['job']); 
 
\t return json_encode($result); 
 
    } 
 

 
}

我預期的反應是

{"success":true,"response":"propertyCreation"}

,但反應

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
{"success":true,"response":"propertyCreation"}

我困惑爲什麼在JSON響應meta標籤,結果有錯誤沒有成功。對不起,我的英語不好,並提前謝謝

回答

0

我已經在Laraver 5.2測試你的代碼,一切都OK。 只是一件事。根據JSON你必須在「警戒」線在JavaScript中稍有失誤:

// ... 
success: function(data) 
{ 
    // Should be => alert(data.response); 
    alert(data.responseText); 
},//success 
// ... 
+0

非常感謝您的回答。我的代碼在我的其他項目中正常工作,但在當前項目中發生此問題。我不知道我必須做些什麼才能解決這個問題 – loghman

+0

就在現在,我也在清晰的Laravel 5.1上進行了測試,這也沒關係。 也許在一些中間件的原因? – Slam

+0

非常感謝您的關注和測試。再次感謝。我發現我的錯誤。 – loghman

0

我有多個路徑的文件,並在第一碼的兩個路徑的文件有這樣一行:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

後刪除這條線,我的問題就解決了。

0

如果console.log(data)返回值是什麼?

僅供參考,您不應使用json_encode在Laravel中發送JSON響應。只需return $someArray,它會自動編碼爲JSON格式。