以下是我的脚本。我正在使用codeigniter,一个php框架以及jquery和ajax。任务是通过ajax将员工详细信息添加到数据库,但我收到此错误:
主线程上的同步XMLHttpRequest因不推荐使用 它对最终用户的体验产生不利影响。获得更多帮助 http://xhr.spec.whatwg.org/
<script>
$(function(){
$('#btnAdd').click(function(){
$('#myModal').modal('show');
$('#myModal').find('.modal-title').text('Add New Employee');
$('#empForm').attr('action','<?php echo base_url() ?>addEmployee')
});
$('#btnSave').click(function(){
var url = $('#empForm').attr('action');
var data = $('#empForm').serialize();
//Validations
var empName = $('input[name="emp_name"]');
var empAdd = $('input[name="emp_address"]');
var result ='';
if(empName.val()==''){
empName.parent().parent().addClass('has-error');
}
else{
empName.parent().parent().removeClass('has-error');
result +='1';
}
if(empAdd.val()==''){
empAdd.parent().parent().addClass('has-error');
}
else{
empAdd.parent().parent().removeClass('has-error');
result +='2';
}
if(result=='12'){
$.ajax({
type : 'ajax',
method : 'post',
url :url,
data : data,
async : false,
dataType : 'json',
success: function(success){
if(response.success){
$('#myModal').modal('hide');
$('#empForm')[0].reset();
index();
}
else{
alert('error');
}
},
error: function(){
alert('Could Not Add Data');
}
});
}
});
答案 0 :(得分:0)
您收到此错误是因为您的Ajax请求是同步的(asyc: false
)。
该错误甚至会为您提供一个链接,您可以在其中详细了解它..
Throws an InvalidAccessError exception if async is false
参考:https://xhr.spec.whatwg.org/#the-open()-method
要解决您的问题,您应该将async设置为true或者根本不指定。
答案 1 :(得分:0)
解决方法(async:true)将显示加载图像并成功隐藏加载图像。
建议不要使用async:false,因为它会停止所有js操作并停止服务器的响应。
答案 2 :(得分:0)
输入:&#39; ajax&#39;,
type应该是GET或POST,并且只有在你的jquery版本是&lt; 1.9.1
async:false,
你不需要改变&#34; asynch&#34;行为,因为,毕竟Ajax中的第一个字母代表&#34;异步&#34;