【发布时间】:2016-03-21 17:10:55
【问题描述】:
我有一个表单和一个保存按钮。单击时,我想使用 Ajax 将表单中的所有数据发布到我的Controller。我本可以使用Input::all() 来做到这一点,但我试图避免我的页面刷新。
我希望能够访问这些表单数据,就像 input::all(),但使用 Ajax 代替。
如何进行和实施这样的事情?
我试过了
JS
$('.saveRateLimitBTN').click(function (event) {
var url = '{{env("APP_URL")}}{{$cpe_mac}}'+'/device/'+'{{$device_mac}}'+'/rate/update';
var inputs = {};
$("#editRateLimitForm :input").each(function() {
inputs[$(this).attr("name")] = $(this).val();
});
$.ajax({
url: url,
type: 'PUT',
dataType: 'json',
data: inputs,
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log('PUT error.', xhr, textStatus, errorThrown);
}
});
});
DeviceController > updateRate() 函数
public function updateRate(){
dd('Here'); // This never get run.
}
路线
Route::put('{cpe_mac}/device/{device_mac}/rate/update',['as'=>'device.update', 'uses'=>'DeviceController@updateRate']);
表单(刀片语法)
{!! Form::open(array('url' => '/'.$cpe_mac.'/device/'.$device_mac.'/rate/update', 'class' => 'form-horizontal', 'role' =>'form','method' => 'PUT', 'id' => 'editRateLimitForm')) !!}
<span class="pull-left">
<div class="col-sm-6">
<p>Downlink </p>
<select type="text" id="rateDownSelect" class="form-control" name="max_down" >
@foreach ($rate_limit as $key => $value)
<option value="{{$value or ''}}"
>{{$value or ''}} Kbps</option>
@endforeach
</select>
</div>
<div class="col-sm-6">
<p>Uplink</p>
<select type="text" id="rateUpSelect" class="form-control" name="max_up" >
@foreach ($rate_limit as $key => $value)
<option value="{{$value or ''}}">{{$value or ''}} Kbps</option>
@endforeach
</select>
</div>
</span><br>
{!! Form::hidden('cpe_mac', $cpe_mac)!!}
{!! Form::hidden('device_mac', $device_mac)!!}
<span class="pull-right">
<button class="saveRateLimitBTN btn btn-xs btn-info pull-right" type="button">Save</button>
</span>
{!! Form::close();!!}
结果
XMLHttpRequest 无法加载 http://localhost/000D6751560C/device/0800277B6BDE/rate/update。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8888' 因此不允许访问。
【问题讨论】:
标签: php jquery ajax laravel laravel-5