试图让AJAX图像上传工作在Laravel 4上但有问题。 这就是我所拥有的: 表格: {{ Form::open(array(‘class’ => ‘update-insertimage-form’, “files” => true,)) }} {{ Form::file(‘image’, array(‘class’ => ‘update-insertimage-btn’, ‘name’ => ‘update-insertimage-btn’)) }} {{ Form::close() }} 和PHP: $createImage = Image::make(Input::file(‘update-insertimage-btn’))->orientate(); $createImage->resize(600, null, function ($constraint) { $constraint->aspectRatio(); }); $createImage->save(“user_uploads/cover_images/TEST.jpeg”); jQuery的: $(‘.update-insertimage-form’).submit(function() { $(“.submit-newupdate-btn”).addClass(‘disabled’); var rootAsset = $(‘.rootAsset’).html(); $.ajax({ url: rootAsset+’saveUploadedImage’, type: ‘post’, cache: false, dataType: ‘json’, data: $(‘.update-insertimage-form’).serialize(), […]
我正在尝试做一个简单的ajax文件上传,但我得到一个“未捕获的TypeError:formData.has不是一个函数” 如果我也注释掉formData.has()检查函数并用formData.append(’myResume’)替换它,我得到一个类似的错误,说formData.get()不是我的ajax调用中的函数。 有什么建议? 谢谢 :) 这是html: Upload 和javascript: $(function(){ var formData = new FormData(); $(‘#file-form’).submit(function(event){ var fileInput = document.getElementById(‘file-select’).files; var file = fileInput.item(0); event.preventDefault(); //Error here formData.has() is not a function if(formData.has(‘myResume’)){ formData.set(‘myResume’, file); } else{ formData.append(‘myResume’, file); } $.post(‘/upload’, {file: formData.get(‘myResume’)}); }) })
这是我的工作代码: jQuery.ajax({ type: ‘post’, url: ajaxurl, dataType: ‘json’, data: jQuery(‘select[name^=”option”], :input[name^=”option”]), success: function (mydata) { // do something } }); 我想添加一个要传回的变量以及名为’myVar’的select和textbox选项值。 但是当我添加它时,我在参数中没有看到它: var myVar = ‘123’; jQuery.ajax({ type: ‘post’, url: ajaxurl, dataType: ‘json’, data: jQuery(‘select[name^=”option”], :input[name^=”option”], myvar=’+myVar), success: function (mydata) { // do something } }); 难道我做错了什么? 我是否需要序列化或编码URI组件? 似乎没有什么影响它。 我仍然得到选择和文本框数据,但myVar在$ _POST方面根本没有。 思考?
我正在尝试使用jQuery的$ .post方法将WebAudio API和Recorder.js生成的音频blob发送到我的Laravel Controller。 这是我正在尝试的。 $(‘#save_oralessay_question_btn’).click(function(e){ var question_content = $(‘#question_text_area’).val(); var test_id_fr = parseInt($(‘#test_id_fr’).val()); var question_type = parseInt($(‘#question_type’).val()); var rubric_id_fr = $(‘#rubric_id_fr’).val(); var reader = new FileReader(); reader.onload = function(event){ var form_data = new FormData(); form_data.append(‘audio_data’, event.target.result); var result = $.post(‘../questions’, { question_content:question_content, question_type:question_type, test_id_fr:test_id_fr, rubric_id_fr:rubric_id_fr, audio_data:form_data, processData: false, contentType: false },function(data){ var html = […]
我有一个问题,我需要将数据发布为内容类型application/x-www-form-urlencoded 。 var inputData = {cId:”444″,pageNo:”1″,latitude:”49.153236″,longitude:”12.040905″}; var data = new FormData(); data.append(‘data’, JSON.stringify(inputData)); this.model.save(data, { data: data, processData: false, cache: false, contentType: false, success: function (model, resultData) { $.get(App.baseUrl + ‘templates/all-offers-view.html’, function (data) { template = _.template(data, { data: resultData }); that.$el.html(template); }, ‘html’); }, error: function (error) { console.log(“Error”); return false; } }); 虽然以上在所有其他浏览器中工作正常,但我在IE9中收到以下错误。 […]
最近我使用AJAX提交表单。 在研究最佳方法时,我使用.serialize()和其他人使用FormData .serialize()了一些AJAX提交。 例如。 一份提交的内容是: data: form.serialize() 而另一个做了: var formData = new FormData($(‘form’)[0]); data: formData 那么FormData和.serialize()之间有什么区别?
让我们直接进入代码: var formData = new FormData(); formData.append(‘name’, dogName); formData.append(‘weight’, dogWeight); formData.append(‘activity’, dogActivity); formData.append(‘age’, dogAge); formData.append(‘file’, document.getElementById(“dogImg”).files[0]); console.log(formData); 在这里,我将一些字符串和一个文件对象附加到formData对象,以便将所有信息异步发送到服务器。 在那之后,我有这个jquery ajax请求: $.ajax({ type: “POST”, url: “/foodoo/index.php?method=insertNewDog”, data: formData, processData: false, contentType: false, success: function(response){ console.log(response); }, error: function(){ } }); 所以在这里我试图将信息发布到服务器上,在服务器上的php文件中我有一个简单的POST的POST文件,所以我看到了什么通过,什么没有。 不幸的是我在console.log(数据)中的响应是空的。 此外,如果您在“网络”选项卡中选中“HEADER”,则会得到以下空输出: 成功函数被调用(仅用于澄清)
我有以下脚本从输入类型的文件中获取文件数据: var uploadfiles = $(“#upFile”).get(0); var uploadedfiles = uploadfiles.files; var fromdata = new FormData(); for (var i = 0; i < uploadedfiles.length; i++) { fromdata.append(uploadedfiles[i].name, uploadedfiles[i]); } // ajax code omitted that uploads file 这在我测试过的所有浏览器中都很有用,除了IE 11.除此之外它不明白FormData()是什么? 我现在已经在线阅读了很多不同的解决方法,但是没有一个可以工作,无论我什么也没做,无法从输入中获取文件的详细信息。 还有其他人有这个可以帮助吗? 即使我尝试使用jQuery来获取对象,那么’files’由于某种原因未定义。 编辑:在线阅读更多,似乎可能是因为IE在提交表单之前不提供对输入的访问,但是我使用ajax上传文件,所以我无法真正提交它。 编辑2:我还应该提一下,这个代码是在文件输入的更改事件上调用的,不确定它是否有任何相关性,但最好提一下
我设法发送一个FormData对象,如下所示: var formData = new FormData(); formData.append(‘file’, this.files[0]); $.ajax({ url: urlUploadProductsFile, type: ‘POST’, data: formData, cache: false, contentType: false, processData: false }, ‘json’); 现在我想要做的是添加一个额外的CustomerId发送到服务器。 以下内容不起作用: var formData = new FormData(); formData.append(‘file’, this.files[0]); $.ajax({ url: urlUploadProductsFile, type: ‘POST’, data: { “file”: formData, “CustomerId”: 2 }, cache: false, contentType: false, processData: false }, ‘json’); 我还尝试了以下变化: data: { […]
我试图使用jQuery的ajax方法从表单提交文件: var ofile=document.getElementById(‘image’).files[0]; var formdata = new FormData(); formdata.append(“image”,ofile); $.ajax({ url:’elements/save_elements’, data:formdata, type:’POST’ }); 这会导致错误TypeError: ‘append’ called on an object that does not implement interface FormData 。 是什么导致这个错误? 它不会发生在实际的formdata.append ,而是发生在jQuery中。