json請求跨域報錯
阿新 • • 發佈:2018-12-21
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>
重新發布專案執行成功