从外部站点向 Laravel 发送 POST 请求

Posted

技术标签:

【中文标题】从外部站点向 Laravel 发送 POST 请求【英文标题】:Send POST request from an external site to Laravel 【发布时间】:2020-05-11 01:35:00 【问题描述】:

我想要一种方法将 POST 从 PHP 站点 发送到另一个使用 Laravel(第二个) 构建的站点,以返回 JSON价值!

php 站点(我使用 jQuery 发送此 POST):

$('#get_link_form').on('submit', function(event)
        $.ajax(
            url:"<?= $d; ?>/link/go/blog",
            method:"POST",
            data: new FormData(this),
            dataType:'JSON',
            contentType: false,
            cache: false,
            processData: false,
            success:function(data)
            
                if (data.msg != "") 
                   $('#sell_house_submit').html(data.msg);
                 else 
                   $('#sell_house_submit').removeAttr('disabled').attr('href', data.link).html("Get Link!");
                
            
        );
        event.preventDefault();
    );

以及使用 LARAVEL 构建的第二个站点:

public function countlink_blog(Request $request) 

        $link_id = $request->link_id;
        $link = Link::where('link_id', $link_id)->get()->first();
        if ($link) 
            $count = new CountController();
        return response()->json(['link' => $link->redirect, 'msg' => '']);
         else 
            return response()->json(['link' => '', 'msg' => 'Your Link Is Invalid!']);
        

奇怪,我都准备好了,POST发送成功,却收不到任何结果?我不明白为什么?知道我从这条 ROUTE 中删除了 CSRF!

在 Laravel 中有什么方法可以做到这一点?

【问题讨论】:

看这里你需要解析来自php的错误***.com/questions/59489824/… 尝试使用 Postman 应用检查您的 Laravel 是否响应请求 没有错误,但是如果我输入一个像 echo "Hi"; 这样的文本,我可以看到响应,但是如果我使用 response()->json( []); 这里的响应是空的! :( 【参考方案1】:

将路由移动到 Laravel 中的 api.php 并设置您的请求标头 Accept: "application/json"

$.ajax(     
      headers:           
        Accept: "application/json"
           
      data: "data",    
      success : function(response)   
        // ...
      
    );

【讨论】:

以上是关于从外部站点向 Laravel 发送 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章

从 laravel 调用 HTTPS 请求到外部 API

WAMP Laravel - 从一个本地站点向另一个站点发送API请求混合了环境变量

如何从外部 API 获取 $_POST 数据 - LARAVEL

向 laravel 服务器发送 POST 请求时获取 "message":"Unauthenticated."

以快递方式从 POST 请求处理程序发送 WebSocket 消息

如何使用 Postman 处理 Laravel $_POST 请求