jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录

在这个示例中,当点击“click me”按钮后,jQuery会向tomcat请求a.txt文件,成功过后会弹出“success”警告框,失败后会弹出“fail”警告框。

运行结果如下图

当点击按钮时,在开发者工具下可以看到已经拿到了a.txt文件,但是却弹出了“fail”警告框。

网上搜了很多博客,有的说是跨域访问,要把请求类型改为jsonp,高频词汇但是我是在本地服务器上运行的,都是在本地ip下,不是跨域问题。不过他说的修改请求参数倒是提醒了我。

于是我立刻去检查我的请求参数,考虑到可能是编码不匹配,于是就把`//contentType:”utf-8”这一句注释掉了,重新运行,仍然出错。

于是检查其他类型,发现dataType写的是“txt”,传输类型里面没有txt,而是text,原来是这里错了,将这里改成了

重新运行,测试,成功!

jQuery
AJAX中的$.ajax()方法虽然方便好用,但是出了错同样很难查,在使用的过程中应该多注意细节,小心参数类型等问题,用的多了过后,就不会再犯这种初级错误了。

原文地址:https://www.cnblogs.com/zhaolide/p/9759646.html

时间: 2024-12-14 11:29:51

jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录的相关文章

Django框架 之 基于Ajax中csrf跨站请求伪造

ajax中csrf跨站请求伪造 方式一 1 2 3 $.ajaxSetup({     data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 方式二 1 2 3 4 5 <form> {% csrf_token %} </form><br><br><br>$.ajax({<br>...<br>data:{ "csrfmiddlewaretoken":

AJAX中出现两次请求,OPTIONS请求和GET请求

在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求,得到的数据出错,所以想要去掉OPTIONS请求. ajax请求如下: ajaxRequestGet: function (lastPath, requestParams, successFun) { $.ajax({ headers: { 'GISTTOKEN': getToken() }, url : this.baseUrl+lastPath, type : "get", data: requestParams,

ajax中的post方法中回调函数不执行的问题

前一段时间接触了JQuery Ajax中的.post()方法和.get()方法,感觉到ajax的简洁和强大,当用到.post()方法时,去W3上查找相关的使用方法,感觉十分简单,用法很明了,然后,直接根据自己的需要(js将数据post给php写入数据库,然后返回给js一个值)开写了,写完了,运行,竟然不行!然后仔细地对比我的代码和demo的不同,为了查找错误,将我的代码写的几乎和demo相同了,但是还是无法在js中获得php的数据. 这里先回忆一下.post()方法. jQuery.post(u

Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)

本文装载自:http://blog.csdn.net/u012737182/article/details/52831008    感谢原文作者分享 开发环境:Tomcat9.0 在使用Ajax实现Restful的时候,有时候会出现无法Put.Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1.使用地址重写的方法传递参数.2.配置web.xml项目环境. 测试的程序为: @RequestMapping(value = "/member", method =

ajax中的setRequestHeader设置请求头

1.问题引发点: 前不久发现一个问题: 前端并没有设置请求头信息里面的Accept-Encoding:gzip...但是在请求头中可以明显的看到Accept-Encoding:gzip, deflate, sdch,并且我尝试修改这个请求头,发现 不 生 效: 2.XMLHttpRequest对象提供了一个设置请求头的方法:setRequestHeader,对应的jQuery可以再beforeSend回调里面设置请求头: $.ajax({ type: "GET", url: "

ajax 中的一些方法应用

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>get方式</title> <style> .loading{ color: red; font-size: 16px; display: inline-block; margin-top: 10px; font-family: "微软

jQuery UI 中的 datepicker( )方法

学习要点: 调用 datepicker( ) 方法 修改 datepicker()样式 datepicker( ) 方法的属性 datepicker( ) 方法的事件 一.调用 datepicker()方法 $('#date').datepicker(); 二.修改 datepicker()样式 修改样式,可以在浏览器中审查元素,然后修改对应地方的样式 // 修改当天日期的样式 .ui-datepicker-today .ui-state-highlight{ border: 1px solid

jQuery Mobile中$.mobile.buttonMarkup方法使用具体解释

近期在群里遇到多数网友提到$.mobile.buttonMarkup()方法的使用. 我这里就列了一下api的使用说明,以后大家看博客就能解决这个问题.如有不对的地方,请留言指出! jQuery Mobile暴露的方法都是使用$.mobile来引用. $.mobile.buttonMarkup( options, overwriteClasses ) 加入按钮的样式元素 当中options为对象,overwriteClasses为布尔类型,默觉得false.当设置为true,buttonmark

jquery ajax GET POST 跨域请求实现

同一段逻辑代码需要在多个网站中使用, 每个网站都新建一个ashx真是扯蛋的作法,  所以想只请求一处的ashx, 这样便于维护和修改, 那么,ajax跨域问题就来了. 废话少说, 直接上代码,  我现在做的是GET请求的. POST请求同理. 首先整改ashx,加入支持跨域请求的代码. context.Response.ContentType = "text/plain"; string active = context.Request.QueryString["active