【问题标题】:Keeping the input request as JSON将输入请求保存为 JSON
【发布时间】:2020-07-04 05:05:46
【问题描述】:

我的应用程序需要将数据发布到外部端点并获得响应。但是那个外部端点禁用了跨源,所以我不能直接从前端 JS 发出请求,而必须从后端 laravel 发出请求。

我的问题是,如果我将 JSON 正文数据从我的 JS 前端发布到我的后端 laravel,如何将其保留为 JSON?所以 laravel 可以使用 Guzzle 将该 JSON 数据 POST 到外部端点。

【问题讨论】:

  • 您实际上并不需要将 JSON 数据保存为字符串。如果你这样做$client->request("POST", "endpoint", [ "json" => request()->json() ]);,它应该被正确发送
  • 您好,感谢您的回复。但我试过这个。但这不起作用,因为 request()->json() 数据类型是 object 并且 json_encode 无法处理这个, json_encode(request()->json()) 的结果将只是空字符串。我认为json_encode只能处理一个数组。
  • request()->json()->all() 怎么样?

标签: json laravel input


【解决方案1】:

您实际上并不需要将 JSON 数据保存为字符串。如果你这样做$client->request("POST", "endpoint", [ "json" => request()->json()->all() ]);,它应该被正确发送。这是一种简单而有效的方法。

【讨论】:

  • 您好,感谢您的回复。但我试过这个。但这不起作用,因为 request()->json() 数据类型是 object 并且 json_encode 无法处理这个, json_encode(request()->json()) 的结果将只是空字符串。我认为json_encode只能处理一个数组。
  • 然后使用json() 方法代替toArray()
  • 谢谢你的回复,不过已经用$request->json()->all();解决了
猜你喜欢
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多