关于Ajax登录请求的405 Method not Allowed 问题

前端交流企鹅:724396871

今天写了一个网站登录的ajax请求,发现总是出现这个405的问题,结果在网上找了很久。都没能解决。

                    var username = $(".username").val();
			var pwd = $(".password").val();
			var param = {'Name':username,'Pwd':pwd};
   			console.log("Request param = "+JSON.stringify(param));
			$.ajax({
				type:"post",
				url:"http://localhost:1405/api/login/valid",
				dataType:'json',
				contentType:"application/json",
				data:JSON.stringify(param),
				async:false,
				success:function(res){
					alert(res);
				},
				error:function(){
					alert("登录失败!")
				}
			});

上面这个是我一开始的请求。

 

在网上找到最多的就是关于请求方面的问题和IIS(不知道是啥的百度。。)方面的问题。先从自身的角度来找问题,看看请求中是不是写的。

后来我想起来我的请求中 是将对象通过

                                contentType:"application/json",
				data:JSON.stringify(param)

这样的一个方式,转换为json字符串形式,这样会不会后台有这怎么的冲突?

之后查看了api的文档发现,后台需要传入的参数是对象。

之后情形就明了了,将contentType删除,在将data属性的类型修改成字符串

就能请求成功了。

关于Ajax登录请求的405 Method not Allowed 问题_第1张图片

登录成功的返回值。

备用:常见出现405错误的可能原因

1.在接口调用的方式或者参数不对的时候会出现405错误。例如接口为delete类型,参数携带在url中,错写成post类型会导致报405的错误

2.接口需求的传参为url传参,前端请求时将参数放在body中。

3.跨域问题   跨域问题是个老生常谈的问题,解决起来大多需要后台来配合解决。所以快去找你们后台商量吧!

总结:在遇到类似问题的时候,首要找到出现问题的原因,同一个问题出现的原因是不尽相同的,不可以盲从别人解决问题的办法。注意前后台的一致性,否则会花掉大量的时间做一些无用功。

 

 

你可能感兴趣的:(jquery,ajax)