1. 程式人生 > >json請求跨域報錯

json請求跨域報錯

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>

重新發布專案執行成功