我是Laravel和JQuery的初学者。
我有此代码:
<ul>
<li class="file-id-46">- <a
href="http://test.test/upload/other/1c186a1229c8c502c9bae2794b52a6f0.pdf"
target="_blank">upload/other/1c186a1229c8c502c9bae2794b52a6f0.pdf</a>
<a href="#" class="red removeThisFile"
id="46">[delete file]</a>
</li>
<li class="file-id-47">- <a
href="http://test.test/upload/other/65b13b47f09fc785d901e43e7864bab2.pdf"
target="_blank">upload/other/65b13b47f09fc785d901e43e7864bab2.pdf</a>
<a href="#" class="red removeThisFile"
id="47">[delete file]</a>
</li>
<li class="file-id-48">- <a
href="http://test.test/upload/other/19846324513791f79013fb8e5a7854d8.pdf"
target="_blank">upload/other/19846324513791f79013fb8e5a7854d8.pdf</a>
<a href="#" class="red removeThisFile"
id="48">[delete file]</a>
</li>
<li class="file-id-49">- <a
href="http://test.test/upload/other/fca69b7c02ae223cd167202368d3a555.pdf"
target="_blank">upload/other/fca69b7c02ae223cd167202368d3a555.pdf</a>
<a href="#" class="red removeThisFile"
id="49">[delete file]</a>
</li>
<li class="file-id-50">- <a
href="http://test.test/upload/other/2a1f88cd9f223a423a29594be3d8ce7a.pdf"
target="_blank">upload/other/2a1f88cd9f223a423a29594be3d8ce7a.pdf</a>
<a href="#" class="red removeThisFile"
id="50">[delete file]</a>
</li>
<li class="file-id-51">- <a
href="http://test.test/upload/other/dbe585a9716bd417437be6b0d5695a6a.pdf"
target="_blank">upload/other/dbe585a9716bd417437be6b0d5695a6a.pdf</a>
<a href="#" class="red removeThisFile"
id="51">[delete file]</a>
</li>
<li class="file-id-52">- <a
href="http://test.test/upload/other/585b8aa2cfd6a871eb3ed0e1c6d5e2b9.pdf"
target="_blank">upload/other/585b8aa2cfd6a871eb3ed0e1c6d5e2b9.pdf</a>
<a href="#" class="red removeThisFile"
id="52">[delete file]</a>
</li>
</ul>
$(".removeThisFile").click(function () {
var id = $(this).attr("id");
$('.file-id-' + id).hide();
$.ajax({
url: 'http://test.test/psCMS/removeOtherFile?id=52',
type: 'get',
dataType: 'json',
_token: $('meta[name="_token"]').attr('content'),
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
cache: false,
success: function (response) {
$(this).hide();
}
});
通常,jquery正确地将查询发送到php(Laravel)。 在删除文件时出现问题。第一个文件已正确删除。下一个文件不能被睡眠。 我怀疑删除先前的文件后,我的X-CSRF-TOKEN令牌无效。
如何解决此问题?
答案 0 :(得分:1)
在js代码中:
$(".removeThisFile").click(function () {
var id = $(this).attr("id");
$('.file-id-' + id).hide();
$.ajax({
url: 'http://test.test/psCMS/removeOtherFile/'+id,
type: 'get',
dataType: 'json',
cache: false,
success: function (response) {
$(this).hide();
}
});
});
在路由文件(web.php)中:
Route::get('/psCMS/removeOtherFile/{id}', 'YourController@removeOtherFile');
在控制器中:
public function removeOtherFile($id){
$my_id = $id;
// here is your id
}
答案 1 :(得分:0)
您可能会遇到一些x-csrf问题,因为这看起来不像我过去所看到的(尽管可能很好用)。使用表格顶部的@csrf
,并在ajax设置方法中调用常规标头,可能会更好。
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
但是,直接回答您的问题,我认为问题要容易得多-我认为这是一个错字。您已经对ID进行了硬编码。尝试更改此行:
url: 'http://test.test/psCMS/removeOtherFile?id=52',
收件人:
url: 'http://test.test/psCMS/removeOtherFile?id='+id, // <--- note the variable