JQuery AJAX调用本地更新脚本在Safari中失败,在Chrome和FF中工作
JQuery AJAX calling local update script fails in Safari, works in Chrome and FF
在本地脚本上进行AJAX调用以使用POST更新dbase。 错误报告并没有给我太多的可继续。 适用于IE,Chrome和FF,但不适用于Safari 6。 其他JQuery功能在Safari中工作,Firebug DOM选项卡显示JQuery有。 下面是 AJAX 代码块。
$.ajax({
type: "POST",
url: "updatead3.php",
data: {pos_data: dd_elm}, //index array created earlier
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
}).done (function(data) {
if(console && console.log) {
console.log("AJAX success: " + data);
}
}).fail(function(obj,status,error) {
alert("AJAX Error:" + obj.error);
});
alert("Changes were saved!");
location.reload();
)};
)}:
在"检查 jquery-1.9.1.js"菜单选项>"Firebug 脚本"选项卡下,将显示"拒绝访问受限 URI"。 但如果这是一个跨域问题,我不会期望任何JQuery功能。提前致谢
在处理$.ajax
(或任何与此相关的异步代码)时,应始终记住:"下面"并不意味着"之后"。
要使一些代码在解析调用后立即执行$.ajax()
无论成功与否,仅仅在$.ajax
下编写是不够的 - 实际上,除非它引入了一个等待块(就像alert
一样),否则它的代码将始终在任何 ajax 回调有机会工作之前执行。
相反,您应该使用 Promise
接口提供的方法(以及$.ajax
返回的jqXHR
对象):
- .done(),在成功解析 AJAX 调用时触发
- .fail(),在解析 AJAX 调用并出现错误时触发
-
.always(),无论如何在解析 AJAX 调用时触发(并且
.done
/.fail
方法中指定的所有回调也已完成)。
在此特定情况下,在仍处理 AJAX 调用时触发页面的重新加载。首先,这对某些浏览器来说是令人困惑的,实际上在大多数情况下会阻止您正确处理 AJAX 的结果。
相反,应该做的是将代码放入$.ajax().always()
回调中:
$.ajax({ some: 'settings'})
.done(function() { console.log('SUCCESS :)'); })
.fail(function() { console.log('FAIL :('); })
.always(function() { console.log('Doh, I''m fired anyway'); });
相关文章:
- select方法在Firefox和Chrome中失败
- 当我在chrome中切换设备模式时,$http.get请求失败
- console.assert失败时中断chrome调试器
- Chrome扩展在检测iframe时失败
- Android/Chrome jQuery AJAX请求在到达服务器之前失败,并出现parserror
- 由于adblock,Javascript Ajax请求在chrome中失败,我有什么选择
- XMLHttpRequest的open()在Chrome中失败
- getUserMedia在Firefox上给出错误,在Chrome上静默失败
- Javascript正则表达式在IE中失败,但在Chrome和Edge中工作
- 为什么对img标记的前向引用在Chrome上失败,但在FireFox和IE上有效
- 在Chrome扩展中使用PAC文件重定向HTTPS请求似乎失败了
- execCommand('copy')在OS X上的Chrome上失败
- jQuery的attr()在chrome中逐步调试时失败
- Chrome.Identity.launchWebauthflow 对于特定用户失败
- Facebook JavaScript API - Chrome 中的登录失败
- 测试用例在 Chrome 中失败
- Chrome.hid.send 失败,因为设备丢失
- 按顺序发送多个 Ajax 查询在 chrome 和 Safari 中失败
- JQuery AJAX调用本地更新脚本在Safari中失败,在Chrome和FF中工作
- chrome.hid.send 在 PC 上失败,但在 Mac 上工作