javascript - jquery ajax事件没有触发
问题描述
在这里发疯,多年来一直使用 jquery 的 ajax,即使语法和它调用的服务都没有错,但仍然无法找出问题所在,但成功、错误和完成事件根本不会火。我向控制台发出警报和日志,但没有任何反应。
$.ajax({
url: 'DDService.asmx/LoadCountries',
dataType: 'json',
method: 'post',
data: {},
success: function (data) {
alert('success');
console.log('success');
},
error: function (err) {
alert('error');
console.log('Error (RetrieveCountriesDD): ' + JSON.stringify(err, null, 2));
},
complete: function () {
alert('complete');
console.log('complete');
}
});
我在服务中放了一个代码中断,它被调用并返回我指定的 json(就像我说的,我以前做过很多次,这让我很困惑),我将 dataType 更改为 text、html 和即使完全删除它,仍然没有事件触发,也没有任何错误。使用 jQuery 3.3.1 - 尽管所有其他 ajax 调用都在使用相同的语法(这里有什么我遗漏的吗?)。Web 服务返回的示例:
[{"T":"United States","V":"1"},{"T":"Canada","V":"2"},{"T":"Afghanistan ","V":"86"},{"T":"Albania ","V":"89"},{"T":"Algeria ","V":"117"},{"T":"American Samoa ","V":"92"},{"T":"Andorra ","V":"90"},{"T":"Angola ","V":"87"},{"T":"Anguilla ","V":"88"},
任何人都知道什么会导致ajax事件不触发?注意:为简洁起见,我省略了数据解析部分(以填充简单的下拉列表),因为这不是问题所在 - 应该在控制台中显示警告框或其他内容,但在调用服务后什么都没有发生。
解决方案
好吧,我是个白痴。为了调用测试函数,我使用了一个回发按钮,而不是输入类型=“按钮”。
基本上,发生了两个不同职位的战争。
Firefox 将尝试发布到 ajax 服务,同时还尝试通过按钮发布 - 这会产生奇怪的安全错误。Chrome 将尝试发布到 ajax 服务,然后执行按钮发布(并忽略警报)。IE 是个婊子,只有在一切运行后才会进行按钮 POST 。:) Opera 很像 IE,但可能会也可能不会以正确的顺序进行 POST。
推荐阅读
- java - java - 如何递归地将给定字符串中的每个字母大写并在java中返回结果字符串?
- php - 类别和子类别发送数据用于编辑 Laravel
- java - LWJGL3 GLFW 创建窗口错误 (java 1.8, MACOS) 终止
- ssas - MDX - 如何仅访问层次结构的给定级别
- c# - 如何避免将引用的项目配置复制到 bin 文件夹
- c# - 从注册表项 C# 中搜索卸载
- java - 我有一个关于 HTML 和 Javascript 的问题
- java - 当我尝试在 Android 中访问 ProfileFragment 时出现 java.lang.NullPointerException
- docassemble - 将代码从问题块抽象到模块
- html - CSS 我想将图像居中在一个可链接的按钮中