我正在用Laravel开发一个REST服务,以便从移动的应用程序中使用它。它可以在本地正常工作,但不能在主机上工作。经过几次尝试,我开发了一个基本示例来测试POST方法,但它返回相同的错误。
API.php文件
Route::post('/test', 'testController@test') ;
testController。php文件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class testController extends Controller
{
//
public function test(Request $request)
{
return response()->json(['mensaje' => 'POST access successful']);
}
}
POST请求总是返回相同的错误,我在请愿书上使用POST:405不允许使用方法。此路由不支持GET方法。支持的方法:POST。
POSTMAN request
我已经调查了这个主题,我已经读到它可能是由于CORS。所以,我已经安装了spatie/laravel-cors与其默认配置,但POSTMAN仍然显示相同的错误。帮帮忙好吗
**已解决:**谢谢大家!当然,这不是CORS的问题。我的主机服务器默认情况下进行重定向,在此过程中丢失POST参数。
6条答案
按热度按时间zyfwsgd61#
如果您在使用POSTMAN时遇到此错误,您需要进入路由参数的“设置”部分并禁用“自动跟踪重定向”。
wdebmtf22#
有时候,当你有尾随的前斜杠时,问题就出现了。
例如:
只需删除尾部的正斜杠,这样URL将为
8xiog9wr3#
有时是因为您在基于“https”的端点上使用“http”。尝试用https替换http。
pvabu6sv4#
这是因为CORS(跨域资源共享)受到保护,不允许从其他来源调用您的API。要允许在
api.php
中将路由置于标头以下设置avkwfej45#
你确定你调用了
/api/test
因为在API中。php路由文件有一个前缀上的路由hlswsv356#
如果您使用Postman,问题可能是您忘记在请求中添加标题:Accept -〉application/json