Php 站点中登录用户的Laravel中出现Jquery 401错误

Php 站点中登录用户的Laravel中出现Jquery 401错误,php,jquery,laravel,Php,Jquery,Laravel,我有一个商店脚本 在此脚本中,用户可以通过登录我的网站提交订单 我想做一个页面提交订单,而不需要登录 因此,我复制了控制器文件,并在需要用户登录我的站点时更改了代码 我在routs/web.php中创建了addreses 我在我的ste中创建了一个用户,用户id是13 每当我需要用户id时,我都会从该用户处使用 但现在,当用户选择服务(类别)并希望选择包(产品)时,此错误将出现在控制台部分,用户无法获取包列表: 加载资源失败:服务器响应状态为401() /服务/获取软件包/“软件包\u id”

我有一个商店脚本 在此脚本中,用户可以通过登录我的网站提交订单 我想做一个页面提交订单,而不需要登录 因此,我复制了控制器文件,并在需要用户登录我的站点时更改了代码 我在routs/web.php中创建了addreses

我在我的ste中创建了一个用户,用户id是13 每当我需要用户id时,我都会从该用户处使用

但现在,当用户选择服务(类别)并希望选择包(产品)时,此错误将出现在控制台部分,用户无法获取包列表:

加载资源失败:服务器响应状态为401() /服务/获取软件包/“软件包\u id”

当用户登录时,此错误将被解决

为什么??我正确地更改了代码,我看不出哪里还需要用户id,我还没有更正它

我的控制器代码:

<?php 
namespace App\Http\Controllers;

use Validator;
use App\Order;
use App\Package;
use App\Service;
use Carbon\Carbon;
use App\UserPackagePrice;
use App\Events\OrderPlaced;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
use Telegram\Bot\Laravel\Facades\Telegram; 
use Verta;



class BuyController extends Controller
{
    public function newOrder(Request $request)
    {
        mpc_m_c($request->server('SERVER_NAME'));
        $services = Service::where(['status' => 'ACTIVE', 'is_subscription_allowed' => 0])->get();
        $packages = Package::where(['status' => 'ACTIVE'])->get();
        return view('buy.new', compact('packages', 'services'));
    }

    public function store(Request $request)
    {
        $this->validate($request, [
            'package_id' => 'required',
            'quantity' => 'required',
            'link' => 'required',
        ]);
    
        $package = Package::findOrfail($request->input('package_id'));
        $quantity = str_replace ( ',' , '' ,  $request->input('quantity') );
        $min = number_format($package->minimum_quantity,0,'',',');
        $max = number_format($package->maximum_quantity,0,'',',');
        // if quantity is less than minimum
        if (filter_var($quantity, FILTER_VALIDATE_INT) === false) {
            return redirect()
                ->back()
                ->withInput()
                ->withErrors(['quantity' => __('Err 1')]);
        }
        if ($quantity < $min ) {
                return redirect()
                ->back()
                ->withInput()
                ->withErrors(['quantity' => __('Err 2')]);
        }
        if ($quantity > $max ) {
            return redirect()
               ->back()
               ->withInput()
                ->withErrors(['quantity' => __('Err 3')]);
        }

        // if quantity is greater than maximum
        

        // Custom comments count validation
        if ($package->custom_comments) {
            $commnets = $request->input('custom_comments');
            if ($commnets != '') {
                $commnets_arr = preg_split('/\n/', $commnets);
                $total_comments = count($commnets_arr);

                // If greator then quantity
                if ($total_comments > $quantity) {
                    return redirect()
                        ->back()
                        ->withInput()
                        ->withErrors(['quantity' => __('messages.comments_are_more_than_quantity')]);
                }

                // if less then quantity
                if ($total_comments < $quantity) {
                    return redirect()
                        ->back()
                        ->withInput()
                        ->withErrors(['quantity' => __('messages.comments_are_less_than_quantity')]);
                }

            }
        }

        // Calculate Price
        $package_price = $package->price_per_item;

        // Order price to .00 decimal points
        $price = (float)$package_price * $quantity;
        $price = number_format($price, 2, '.', '');

        // check if user have enough funds to make an order

        $order = Order::create([
            'price' => $price,
            'quantity' => $quantity,
            'package_id' => $package->id,
            'api_id' => $package->preferred_api_id,
            'user_id' => 13,
            'link' => $request->input('link'),
            'custom_comments' => $request->input('custom_comments'),
        ]);

        
        if(is_null($order->api_order_id)) {
            $order->remains = $order->quantity;
            $order->start_counter = '0';
            $order->save();
            $admin = User::where(['id' => '1000'])->firstOrFail();
            
        }

        // If preferred API is set then dispatch order to reseller panel
        if (!is_null($package->preferred_api_id)) {
            event(new OrderPlaced($order));
        }

        Session::flash('alert', __('messages.order_placed'));
        Session::flash('alertClass', 'success');
        return redirect('/new-order');

    }

    public function APIStoreOrder(Request $request)
    {

        $response = [
            'errors' => ''
        ];

        $validator = Validator::make($request->all(), [
            'package_id' => 'required|numeric',
            'quantity' => 'required|numeric',
            'link' => 'required',
        ]);

        if ($validator->fails()) {
            $response['errors'] = $validator->errors()->all();
            return response()->json($response);
        }

        $package = Package::findOrfail($request->input('package_id'));
        $quantity = $request->input('quantity');

        // if quantity is less than minimum
        if ($quantity < $package->minimum_quantity) {
            $response['errors'] = ['Please specify at least minimum quantity.'];
            return response()->json($response);
        }

        // if quantity is greater than maximum
        if ($quantity > $package->maximum_quantity) {
            $response['errors'] = ['Please specify less than or equal to maximum quantity'];
            return response()->json($response);
        }

        // Custom comments count validation
        if ($package->custom_comments) {
            $commnets = $request->input('comments');
            if ($commnets != '') {
                $commnets_arr = preg_split('/\n/', $commnets);
                $total_comments = count($commnets_arr);

                // If greator then quantity
                if ($total_comments > $quantity) {
                    $response['errors'] = ['You have added more comments than required quantity'];
                    return response()->json($response);
                }

                // if less then quantity
                if ($total_comments < $quantity) {
                    $response['errors'] = ['You have added less comments than required quantity'];
                    return response()->json($response);
                }

            }
        }

        // Calculate Price
        // Calculate Price
        $package_price = $package->price_per_item;

        // Order price to .00 decimal points
        $price = (float)$package_price * $quantity;
        $price = number_format($price, 2, '.', '');

        // check if user have enough funds to make an order
    
        $custom_comments = '';
        // if package have custom comments option
        if ($package->custom_comments) {
            $custom_comments = preg_replace("/\r\n|\r|\n/", PHP_EOL, $request->input('comments'));
        }

        $order = Order::create([
            'price' => $price,
            'quantity' => $quantity,
            'package_id' => $package->id,
            'user_id' => 13,
            'api_id' => $package->preferred_api_id,
            'link' => $request->input('link'),
            'source' => 'API',
            'custom_comments' => $custom_comments
        ]);

        // delete errors key
        unset($response['errors']);

        $response['order'] = $order->id;

        // Deduct user funds which he has used
        
        if(is_null($order->api_order_id)) {
            $order->remains = $order->quantity;
            $order->start_counter = '0';
            $order->save();
        }
        // If preferred API is set then dispatch order to reseller panel
        if (!is_null($package->preferred_api_id)) {
            event(new OrderPlaced($order));
        }

        return response()->json($response);

    }

    public function APIGetOrderStatus(Request $request)
    {
        $response = [
            'errors' => ''
        ];

        $order = Order::where(['id' => $request->input('order'), 'user_id' => 13])->first();
        if (is_null($order)) {
            $response['errors'] = ['Order Not found'];
            return response()->json($response);
        } else {

            // delete errors key
            unset($response['errors']);

            $response['status'] = $order->status;
            $response['start_counter'] = $order->start_counter;
            $response['remains'] = $order->remains;
        }

        return response()->json($response);
    }

    public function getPackages($service_id)
    {
        $packages = Package::where(['service_id' => $service_id, 'status' => 'ACTIVE'])->get();
        $userPackagePrices = UserPackagePrice::where(['user_id' => 13])->pluck('price_per_item', 'package_id')->toArray();
        return view('buy.partial-packages', compact(
            'packages',
            'userPackagePrices'
        ));
    }
}

500错误是一条通用的错误消息,几乎涵盖了脚本可能出现的每一个错误。请检查您的服务器错误日志和Laravel日志(可在
/storage/logs
中找到),以了解确切的错误消息。很抱歉,错误代码为401。我检查了日志文件,但此错误不存在,因为401未经授权。该页面需要登录吗?这似乎是这样的,因为在登录后,此错误已修复,但我希望用户不需要登录将路由移出需要身份验证的route::group。500错误是一条通用错误消息,几乎涵盖了脚本可能出现的每一个错误。请检查您的服务器错误日志和Laravel日志(可在
/storage/logs
中找到),以了解确切的错误消息。很抱歉,错误代码为401。我检查了日志文件,但此错误不存在,因为401未经授权。该页面需要登录吗?看起来是这样的,因为在登录后,此错误已修复,但我希望用户不需要登录将路由移出需要身份验证的route::group。
@extends('layouts.app')
@section('content')
    <div class="row">
        <!-- left column -->
        <div class="col-md-3 pull-center"></div>
        <div class="col-md-6 pull-center">
            @if(Session::has('alert'))
                    <div>
                      <div class="alert alert-{{ Session::get('alertClass') }} alert-dismissible">
                            <button type="button" class="close pull-left" data-dismiss="alert" aria-hidden="true">&times;</button>
                            {{ Session::get('alert') }}
                        </div>
                    </div>
            @endif
          <!-- general form elements -->
          <div class="box box-primary">
              <div class="box-header with-border">
                <h3 class="box-title">ثبت سفارش جدید</h3>
              </div>
                <form
                        role="form"
                        method="POST"
                        action="{{ url('/order-new') }}">
                    {{ csrf_field() }}
                    <fieldset>
                    <div class="box-body">
                        <div class="form-group">
                            <label for="service_id" class="control-label">Service</label>
                            <select name="service_id"
                                    id="service_id"
                                    class="form-control"
                                    style="direction:rtl; text-align:right;font-size:12px"
                                    >
                                <option value="">
                                 Select service
                                </option>
                                @if( ! $services->isEmpty() )
                                    @foreach( $services as $service)
                                        <option value="{{ $service->id }}"> {{ $service->name  }}</option>
                                    @endforeach
                                @endif
                            </select>
                            @if ($errors->has('service_id'))
                                <span style="color:red">
                                <strong>{{ $errors->first('service_id') }}</strong>
                            </span>
                            @endif
                        </div>
                        <div class="form-group">
                            <label for="package_id" class="control-label">Package</label>
                            <select name="package_id"
                                    id="package_id"
                                    class="form-control"
                                    style="direction:rtl; text-align:right;font-size:12px"  >
                                <option value="">Select the service fisrt</option>
                            </select>
                            @if ($errors->has('package_id'))
                                <span style="color:red">
                                <strong>Eror
                                </strong>
                            </span>
                            @endif
                        </div>
                        
                        <div class="form-group">
                            <label for="description" class="control-label">@lang('forms.description')</label>
                            <textarea name="description"
                                      id="description"
                                      rows="5"
                                      style="height: 150px; text-align:right; direction:rtl;font-size:12px"
                                      class="form-control" readonly></textarea>
                        </div>
                        <div class="form-group">
                            <label for="link" class="control-label">@lang('forms.link')</label>
                            <input name="link"
                                   id="link"
                                   value="{{ old('link') }}"
                                   type="text"
                                   class="form-control"
                                   placeholder=""
                                   style="text-align:left; direction:ltr;font-size:12px"
                                   >
                            @if ($errors->has('err.link'))
                                <span class="help-block">
                                <strong>Error
                                </strong>
                            </span>
                            @endif
                        </div>
                        <div class="form-group">
                            <label for="quantity" class="control-label">@lang('forms.quantity')</label>
                                <input name="quantity"
                                   id="quantity"
                                   type="text"
                                   value="{{ old('quantity') }}"
                                   class="form-control"
                                   data-validation-allowing="range[1;100]"
                                   style="text-align:left; direction:ltr;font-size:12px"
                                    onkeyup="javascript:this.value=addComma(this.value);"/>
                            
                            @if ($errors->has('quantity'))
                                
                                <span style="color:red">
                                <strong>{{ Verta::persianNumbers($errors->first('quantity')) }}</strong>
                                </span>
                            @endif
                            <span class="help-block">
                            <span class="label label-default">@lang('forms.minimum_quantity') : <span id="min-q">0</span></span> <span class="label label-default">@lang('forms.maximum_quantity') : <span
                                            id="max-q">0</span></span>
                            </span>
                        </div>
                        <div class="form-group">
                            <p>@lang('forms.price_total') <span id="order_total">0</span> $ </p>
                            <p id="not-enough-funds" style="display:none;color:red">@lang('forms.order_amount_exceed')</p>
                        </div>
                        <div class="form-group{{ $errors->has('description') ? ' has-error' : '' }}" id="custom-comments-div" style="display: none">
                            <label for="custom_comments" class="control-label">@lang('forms.custom_comments')</label>
                            <textarea
                                    class="form-control"
                                    id="custom_comments"
                                    style="height: 150px; text-align:right; direction:rtl;font-size:12px"
                                    name="custom_comments"
                                    >{{old('custom_comments')}}</textarea>
                            @if ($errors->has('custom_comments'))
                                <span style="color:red">
                                        <strong>{{ $errors->first('custom_comments') }}</strong>
                                    </span>
                            @endif
                        </div>
                        <div class="form-group">
                            <button type="submit" id="btn-proceed" class="btn btn-primary">@lang('buttons.place_order')</button>
                        </div>
                    </div></fieldset>
                </form>
            </div>
        </div>
    </div>
@endsection
@push('scripts')
    <script>
        var userFunds = '1000000';
        function number_3_3 (num, sep){
            var number = typeof num === "number"? num.toString() : num,
            separator = typeof sep === "undefined"? ',' : sep;
            return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"+separator);
        }
        function addComma(Num) {
            Num += '';
            Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
            Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
            x = Num.split('.');
            x1 = x[0];
            x2 = x.length > 1 ? '.' + x[1] : '';
            var rgx = /(\d+)(\d{3})/;
            while (rgx.test(x1))
                x1 = x1.replace(rgx, '$1' + ',' + '$2');
            return x1 + x2;
        }
        $(function () {
            $('#service_id').change(function () {
                var service_id = $(this).val();
                if (service_id !== '') {
                    resetValues();
                    $.ajax({
                        url: baseUrl + '/service/get-packages/' + service_id,
                        type: "GET",
                        success: function (packages) {
                            $('#package_id').html(packages);
                        }
                    });

                }
            });

            // On select display minimum quantity of package
            $('#package_id').change(function () {
                var sel = $('#package_id option:selected');
                if (sel.val() != '') {
                    $('#min-q').html(sel.data('min'));
                    $('#max-q').html(sel.data('max'));
                    $('#description').text(sel.data('description'));
                    Min = sel.data('min').replace(",", "");
                    Max = sel.data('max').replace(",", "");
                    $('#quantity').attr('data-validation-allowing', 'range[' + Min + ';' + Max + ']');
                    $('#link');
                    if (sel.data('comments') == 1) {
                        $('#custom-comments-div').show();
                        $('#quantity')
                            .val(0)
                            .attr('readonly', true);
                    } else {
                        $('#custom-comments-div').hide();
                        $('#quantity').removeAttr('readonly');
                    }
                }
            });

            $('#custom_comments').on('keyup', function () {
                var text = $(this).val();
                var lines = text.split(/\r|\r\n|\n/);
                var q = lines.length;
                $('#quantity').val($.trim(q)).replace(".","");
                var sel = $('#package_id option:selected');
                var orderTotal = 0;
                if (q > 0) {
                    var price_per_item = sel.data('peritem');
                    orderTotal = q * price_per_item;
                }
                $('#order_total').text(number_3_3(orderTotal.toFixed(2).replace(".", "{{ getOption('currency_separator') }}").replace(".00","")));
                if (orderTotal > userFunds) {
                    $('#not-enough-funds').show();
                } else {
                    $('#not-enough-funds').hide();
                }
            });

            $('#quantity').on('keyup', function () {
                var sel = $('#package_id option:selected');
                var orderTotal = 0;
                var q = $(this).val().replace(",","");
                if (q > 0) {
                    var price_per_item = sel.data('peritem');
                    orderTotal = q * price_per_item;
                }
                $('#order_total').text(number_3_3(orderTotal.toFixed(2).replace(".", "{{ getOption('currency_separator') }}").replace(".00","")));

                if (orderTotal > userFunds) {
                    $('#not-enough-funds').show();
                } else {
                    $('#not-enough-funds').hide();
                }

            });

        });
        function resetValues() {
            $('#order_total').text(0);
            $('#description').text('');
            $('#min-q').html(0);
            $('#max-q').html(0);
        }
        
    </script>
@endpush
@if( ! $packages->isEmpty() )
    <option value="">Please select package</option>
    @foreach( $packages as $package)
        @php
            $price = isset($userPackagePrices[$package->id]) ? $userPackagePrices[$package->id] : $package->price_per_item;
        @endphp
        <option value="{{ $package->id }}"
                data-min="{{ number_format($package->minimum_quantity,0,'',',')}}"
                data-max="{{ number_format($package->maximum_quantity,0,'',',') }}"
                data-comments="{{ $package->custom_comments}}"
                data-description="{{ Verta::persianNumbers($package->description)}}"
                data-peritem="{{ $price }}">

                {{  $package->name . ' ---' }} Price per 1000 items: {{ number_format($price * getOption('display_price_per'),0, getOption('currency_separator'), ',').' $') }}
        </option>
    @endforeach
@endif