首页 > 解决方案 > 从外部站点向 Laravel 发送 POST 请求

问题描述

我想要一种将 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 中做到这一点?

标签: phpjqueryjsonajaxlaravel-5

解决方案


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

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

推荐阅读