2016-11-17 30 views
1

我的Laravel應用程序的每個響應似乎都以\n字符爲前綴,即使我返回的所有數字都是數字。Laravel在回覆中返回前導 n字符

感覺就像我必須將此作爲一個錯誤引入,但是我找不到任何可能做到的地方。我看到我在Laravel建立的其他一些應用程序也有這樣的應用程序(但其他應用程序卻沒有這樣做),所以在拔掉我的頭髮之後,我想我會檢查並查看其他人是否已經體驗過這種情況。

問題是我試圖返回一個ID並使用它,但它有這個主角。我可以剝奪它的客戶端,但寧願修復根本問題。

ETA: 這條路線:

Route::get('/test', function(){ 
    return 'hello world'; 
}); 

產生以下反應:

screen shot with extra line

這不是當然的HTML的問題,但是當我嘗試將其指定爲一個id,我得到「\ n 234」。

+0

聽起來像你正在返回JSON到前端客戶端?你能提供一個有這個問題和響應的方法的例子嗎? – jackel414

+0

我剛剛更新了一個具體的例子。我試圖只回到前端客戶端,但是我看到在每個頁面上都有<!DOCTYPE html>之前的原始響應中有額外的返回。我的想法是一箇中間件問題,但是我拿出了所有我的定製中間件,它沒有任何效果。 – cfkane

回答

0

如果您使用Laravel作爲一個API,我會建議使用JSON response功能:

return response()->json([ 
    'id' => 234 
]); 

這應該減輕領先換行的問題。

至於爲什麼你目前遇到它,它可能與你的請求標題有關。在過去,我不得不將'Accept' => 'application/json'添加到我的請求標題中,以確保Laravel知道我總是希望返回JSON。

+0

是的,這仍然是從響應的第二行開始提供JSON。似乎有一個回車打印在應用程序的某處。但是也許從JSON響應中提取ID是一種更好的做法。 – cfkane

1

首先PHEWW!這是一個不好的問題。

如果您的任何文件從公用文件夾的index.php開始到引發響應的控制器,就會發生這種情況。任何地方,如果在所有存在<?php ?>

之間

參與路由請求和響應開始<?php任何文件的新線路上的任何其他行比1號線

檢查您

  1. 公共/ index.php文件
  2. 引導/ app.php
  3. 配置/ app.php
  4. config文件夾下的任何其他文件
  5. 路線/ web.php或路線/ api.php
  6. 應用程序/ HTTP /控制器/ YourController.php

我覺得這些檢查必須解決您的問題。如果沒有評論下面讓我們討論!

+1

你真的用這個保存了我們的培根!我們使用Apiato框架,並突然發現我們的迴應都是通過正確形成的json返回的,但是第一個字符是「0」。不用說,我們感到困惑。我遇到了你的迴應,只是搜索「0 <?php」並在路由定義文件中找到它。謝謝!! – QuietSeditionist

+1

我很高興你找到了你的修復程序。 (y)的 – BlackBurn027