2
你好,我用同樣的腳本Laravel4.2和Laravel5.1和問題是Laravel 4.2工作完美,但Laravel 5.1,我不能理解爲什麼它返回的結果不好laravel 5.1支持:: AJAX返回假
問題是爲什麼我得到$request->ajax()
爲Laravel 5.1虛假?
routes.php文件
Route::post('/upload-image', [
'as' => 'upload-image-post',
'uses' => '[email protected]'
]);
PageController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class PageController extends Controller
{
public function profileImage(Request $request)
{
//here is problem
//result good: (Laravel 4.2 shows true)
//result bad: (Laravel 5.1 shows false)
var_dump($request->ajax());
}
}
上傳-image.blade.php(JS)
<script>
jQuery(document).ready(function($) {
$('#upload_image').click(function(event) {
$('#image').trigger('click');
});
$('#image').change(function(event) {
/* Act on the event */
$('#imageform').submit();
});
$('#imageform').ajaxForm({
beforeSubmit: function() {
},
success: function(msg) {
},
error: function(request, status, error) {
},
complete: function(xhr) {
if(xhr.status != 401) {
$('#image').val('');
result = xhr.responseText;
result = $.parseJSON(result);
if(!$.isEmptyObject(result.file_base_url)) {
var img = new Image();
img.onload = function() {
$('#register_profile_photo').attr('src', img.src);
$('#register_profile_photo').attr('alt', result.image_alt);
//spinner.stop();
$('#upload-image-error').text('');
}
img.src = result.file_base_url;
} else {
$('#upload-image-error').text(result.image[0]);
}
}
}
});
});
上載image.blade .php(html)
<form enctype="multipart/form-data" name='imageform' role="form" id="imageform" method="post" action="{!! route('upload-image-post') !!}">
{!! csrf_field() !!}
<div style="display:none;">
<input type="file" name="image" id="image" placeholder="Please choose your image" >
</div>
</form>
<div class="profile-img">
<img style="float: right" id="register_profile_photo" src="default.png" alt="Default image">
<div style="float: right" class="img-edit"><a href="javascript:void(0);" id="upload_image">Edit picture</a></div>
</div>
PS。如果您測試laravel 4.2,則此代碼需要從「{!! .. !!}」更改爲「{{..}}」
嘗試使用'$ request-> wantsJson()',而是依賴標準的'Accepts'標頭而不是非標準的'X-Requested-With'標頭。這可能是[此問題]的副本(http://stackoverflow.com/q/20475460/697370) –
控制器的其他部分是否工作? –
其他方法是簡單的方法不是ajax –