jquery-2.1.1.min.js:4 GET http://localhost:8082/scw-restapi/auth/upload?[object%20FormData] 500 (Internal Server Error)
send @ jquery-2.1.1.min.js:4
ajax @ jquery-2.1.1.min.js:4
(anonymous) @ authpage.html?accttype=个体工商户:167
dispatch @ jquery-2.1.1.min.js:3
r.handle @ jquery-2.1.1.min.js:3
authpage.html?accttype=个体工商户:1 Access to XMLHttpRequest at 'http://localhost:8082/scw-restapi/auth/upload?[object%20FormData]' from origin 'http://localhost:8081' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
原因:跨域请求造成的原因;我访问的数据使用的方法与当前js里面的方法命名一样会把我的数据填充到这个方法内
解决办法:
1).jsonp:代表发起跨域请求;利用浏览器对于script,img,href没有跨域限制;
服务器不能返回json数据,返回一个类似方法调用的格式,将交给浏览器的数据作为这个方法的参数;abc(json) 浏览器正巧有这个方法名的方法,每次一返回相当于是对这个方法的调用;方法的参数就是数据;
1.1).$.get(url?callback=?)
callback=? jquery随机搞一个方法名 作为回调函数
服务器:获取到callback的值,把数据夹里面写出去
2).服务器端进行跨域设置;浏览器发数据的时候加上请求头告诉浏览器要跨域;
服务器加上响应头,说谁能跨域?(告诉浏览器不要限制那些地址ajax请求);
在springmvc.xml中添加下面代码
<!-- 在spring配置文件中指定跨域 mvc:cors:指定跨域 -->
<mvc:cors>
<!--所有请求都可以进行跨越请求 ->
<mvc:mapping path="/*"/>
</mvc:cors>
重新发布项目运行成功