Javascript 向Jquery Ajax传递数据的正确方法
使用jquery向ajax传递数据的正确方法是什么。我有以下方法,我想从元标记传递CSRF令牌,但它不起作用Javascript 向Jquery Ajax传递数据的正确方法,javascript,jquery,ajax,laravel-5.1,Javascript,Jquery,Ajax,Laravel 5.1,使用jquery向ajax传递数据的正确方法是什么。我有以下方法,我想从元标记传递CSRF令牌,但它不起作用 <meta name="csrf-token" content="{{ csrf_token() }}"> <div class="fallback"> <input type="file" name="logo" id="logo" class="inputfile"/> </div> $(document).on("c
<meta name="csrf-token" content="{{ csrf_token() }}">
<div class="fallback">
<input type="file" name="logo" id="logo" class="inputfile"/>
</div>
$(document).on("change", ".fallback .inputfile", function() {
$.ajax({
url: "/upload",
type: 'POST',
cache: false,
data: {
_token: $('meta[name="csrf-token"]').attr('content')
},
files: $(":file", this),
iframe: true,
processData: false
}).complete(function(data) {
console.log(data);
// $('#img-thumb').attr('src', data.path);
// $('input[name="job_logo"]').val(data.path);
});
});
我遵循了以下来源的文档
我犯了一个错误。注:这是使用Laravel 5.1
*更新*
应该能够将令牌直接添加到data属性,因为csrf令牌已经在我的meta标记中。下面是一个使用backbone.js/ruby-on-rails的例子,但我不是backbone/rails方面的专家,所以如果有人能将其翻译成jquery,那将是很有帮助的。()
您需要将以下内容添加到页面:
$(function() {
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN' : '{{ csrf_token() }}' } });
});
这是因为每次您向服务器发送AJAX请求时,AJAX都需要X-CSRF-TOKEN
(除非您将其关闭,我不建议这样做)
来源:我自己在
Laravel
方面的经验您需要将此添加到您的页面:
$(function() {
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN' : '{{ csrf_token() }}' } });
});
这是因为每次您向服务器发送AJAX请求时,AJAX都需要X-CSRF-TOKEN
(除非您将其关闭,我不建议这样做)
来源:我自己在Laravel
方面的经验
您已经告诉jQuery不要将包含数据的对象转换为适合通过HTTP传输的格式
您已经告诉jQuery不要将包含数据的对象转换为适合通过HTTP传输的格式。当您使用console.log($('meta[name=“csrf token”]”)时会发生什么情况。attr('content')?令牌是否公开了预期值?关于文件呢?在network inspection面板中,令牌是否实际被发送,或者jquery是否使用来自ajax选项的files属性的数据覆盖了它?相关:当您控制台.log($('meta[name=“csrf token”]')).attr('content')时会发生什么?令牌是否公开了预期的值?那么文件呢?在网络检查面板中,令牌是否实际被发送,或者jquery会用ajax选项的files属性中的数据覆盖它吗?相关:@ozzii你试过我的建议吗?我试过你说的,它会发布,但是文件是空的-请参阅我的laravel方法-每次都返回false,这意味着文件没有被发送。这就是我实际使用的答案。它起作用了fine@ozzii你试过我的建议了吗?我试过你说的,但是文件是空的-看我的laravel方法-每次都返回false,这意味着文件没有被发送。这就是我实际使用的答案。它工作得很好我正在遵循文档
https://cmlenz.github.io/jquery-iframe-transport/
我正在阅读文档https://cmlenz.github.io/jquery-iframe-transport/
$(function() {
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN' : '{{ csrf_token() }}' } });
});
processData: false