2016-11-05 4 views
0

저는 약간의 수정이 있습니다. Ajax를 사용하여 양식을 제출하려고합니다. 이제 laravel 기본값을 사용하지 않고이 작업을 수행하면 auth scaffold이 제대로 작동하지만 auth scaffold을 추가하면 실패합니다. 내가 할 수있는 모든 것을 시도했지만 제출할 수없는 것 같습니다.Ajax에서 laravel 5.3을 사용합니다.

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::post('/mail', [ 
    'as' => 'mail', 
    'uses' => '[email protected]' 
]); 

Auth::routes(); 

Route::get('/home', '[email protected]'); 

Ajax 코드 :

$(document).ready(function() { 

    var options = { 
     beforeSubmit: validate, 
     url: '/mail', 
     data: $(this).serialize(), 
     type: 'POST', 
     dataType: 'json', 
     clearForm: true, 
     success: great, 
     error: lost 
    }; 

    $('#footer-form').ajaxForm(options); 
}); 

function validate(formData, jgForm, options) { 
    for (var i = 0; i < formData.length; i++) { 
     if (!formData[i].value) { 
      alert('Please enter a value for all fields'); 
      return false; 
     } 
    } 
} 

function great(responseText, statusText, formData) { 
    // prevent multiple form submission 
    $('#mail_btn').prop('disabled', true); 
    // show alert on success 
    $(".alert-success").prop("hidden", false); 
    // remove mail error information if displayed 
    $(".alert-info").prop("hidden", true); 
    // reset google recaptcha 
    grecaptcha.reset(); 

} 

function lost(formData) { 
    // prevent multiple form submission 
    $('#mail_btn').prop('disabled', false); 
    $(".alert-info").prop("hidden", false); 
} 

내 양식 코드 :

-

namespace App\Http\Controllers; 

use Illuminate\Support\Facades\Input; 
use Illuminate\Support\Facades\Redirect; 

use Illuminate\Support\Facades\Response; 
use Illuminate\Support\Facades\Mail; 
use Illuminate\Support\Facades\Validator; 
use Illuminate\Http\Request; 

class MailController extends Controller 
{ 
    // 
    public function index(Request $request) 
     { 


      if ($request->ajax()) { 
       $validator = Validator::make($request->all(), [ 
          'first_name' => 'required', 
          'last_name' => 'required', 
          'email' => 'required|email', 
          'mymessage' => 'required', 
          'g-recaptcha-response' => 'required|captcha', 
       ]); 

       if ($validator->fails()) { 
        return redirect()->back() 
            ->withErrors($validator) 
            ->withInput(); 
       } else { 

        // get input fields values 
        $data = [ 
         'firstName' => $request->input('first_name'), 
         'lastName' => $request->input('last_name'), 
         'email' => $request->input('email'), 
         'mymessage' => $request->input('mymessage'), 
        ]; 

        Mail::send('emails.email', $data, function ($message) { 
        official email 
         $message->to('[email protected]', 'My Name')->subject('Information'); 
        }); 

        return response()->json([ 
           'responseText' => 'Mail was sent!'], 200); 
       } 
      } else { 
       return View('fail')->render(); 
      } 
     } 
} 

경로 파일 컨트롤러 메일을 보낼 : 여기

내 코드는
<div class="col-sm-6"> 
<div class="footer-content" id="myfooter"> 
    {!! Form::open(['action' => '[email protected]', 'method' => 'post', 'role' => 'form', 'id' => 'footer-form']) !!} 
         <div class="form-group has-feedback"> 
          {!! Form::label('first_name', null, ['class' => 'sr-only']) !!} 
          {!! Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => 'First Name']) !!} 
          <i class="fa fa-user form-control-feedback"></i> 
          @if($errors->has('first_name')) 
           {{ $errors->first('first_name') }} 
          @endif 
         </div> 
         <div class="form-group has-feedback"> 
          {!! Form::label('last_name', null, ['class' => 'sr-only']) !!} 
          {!! Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => 'Last Name']) !!} 
          <i class="fa fa-user form-control-feedback"></i> 
          @if($errors->has('last_name')) 
           {{ $errors->first('last_name') }} 
          @endif 
         </div> 
         <div class="form-group has-feedback"> 
          {!! Form::label('email', null, ['class' => 'sr-only']) !!} 
          {!! Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'Email address']) !!} 
          <i class="fa fa-envelope form-control-feedback"></i> 
          @if($errors->has('email')) 
           {{ $errors->first('email') }} 
          @endif 
         </div> 
         <div class="form-group has-feedback"> 
          {!! Form::label('mymessage', null, ['class' => 'sr-only']) !!} 
          {!! Form::textarea('mymessage', null, ['class' => 'form-control', 'rows' => 8, 'cols' => 3, 'placeholder' => 'Message']) !!} 
          <i class="fa fa-pencil form-control-feedback"></i> 
          @if($errors->has('mymessage')) 
           {{ $errors->first('mymessage') }} 
          @endif 
         </div> 
         <div class="form-group has-feedback"> 
          {!! app('captcha')->display() !!} 
         </div> 

         {!! Form::submit('Send', ['class' => 'btn btn-default', 'id' => 'mail_btn']) !!} 

         {!! Form::close() !!} 
         <div class="alert alert-success" id="mail_alert" role="alert" hidden> 
          Mail Sent! 
         </div> 
         <div class="alert alert-info" id="mail_info" role="alert" hidden> 
          Mail Sending Error! 
         </div> 
        </div> 
       </div> 

오류 메시지 :

내가 mailgun sandbox account을 것을을 사용 하였다 문제는 그러므로 나는 'I 앱이 mailgun sandbox account로 돈을 허용 할 것 auth scaffold에 포함 auth scaffoldlaravel app을 사용할 때 메일을 보낼 경우에만 할 수
Failed to load resource: the server responded with a status of 401 (Unauthorized) 

답변

0

했다 어떤 응답을 보냅니다.

해결 방법은 일반 gmail을 보내고 예상대로 응답하고 메일이 통과했습니다.

관련 문제