问题描述
项目中使用了jquery.form.js,即jquery的表单提交插件。
在web网站中(asp.net MVC技术),其中一个请求是通过$(’#form’).ajaxSubmit()的方式提交请求,当保存数据(即提交form)时,页面没有响应,通过浏览器的开发者工具,发现下面的错误信息:
403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.
解决思路
思路一
从上面的错误信息,以为是权限问题,于是去服务器上的网站路径上,依次加了下面的权限,并给了full control,进行测试:
- 加上该程序应用程序池的权限,并给了full control权限(iis apppool\应用程序池的名字)
- IIS_IUSR
- IUSR
然后在web页面上重新测试,发现还是一样的问题,没有解决。
思路二
当思路一的方式做完后,发现应该不是权限的问题,于是回归到form请求上的分析。
经过检查发现,web页面中定义的form没有指定方法,那么该form请求将默认使用get请求的方式
具体分析get请求中的每一个参数的内容,发现其中有个参数内容中包含一个单引号(’)。把该内容的单引号去掉,再保存(即提交form),程序正常。
解决方法
- 不修改web页面的内容,删除造成错误的数据中的单引号
或者
- 修改web页面的内容,在定义form的web页面中,指定请求方式,即 method = “post”