国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

完美解決axios跨域請求出錯的問題

2019-11-19 14:24:47
字體:
來源:轉載
供稿:網(wǎng)友

錯誤信息:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403

隨著前端框架的發(fā)展,如今前后端數(shù)據(jù)分離已經成了趨勢,也就是說,前端只需要用ajax請求后端的數(shù)據(jù)合成頁面,后端僅僅提供數(shù)據(jù)接口,給數(shù)據(jù)就行,好處就是前端程序員再也不用在自己的本地搭建Web服務器,前端也不需要懂后端語法,后端也不需要懂前端語法,那么簡化了開發(fā)配置,也降低了合作難度。

常規(guī)的GET,POST,PUT,DELETE請求是簡單請求(相對于OPTIONS請求),但是OPTIONS有點兒特別,它要先發(fā)送請求問問服務器,你要不要我請求呀,要我就要發(fā)送數(shù)據(jù)過來咯(這完全是根據(jù)自己的理解寫的,如果有誤,敬請諒解,請參考阮一峰大神原文。)

在Vue的項目里,Http服務采用Axios,而它正是采用OPTIONS請求。

如果僅僅在header里面加入: 'Access-Control-Allow-Origin':*,是并不能解決問題的,錯誤就是如文章開頭所示。

這兒就需要后臺對OPTIONS請求額外處理。

本文以Spring MVC為例:

添加一個攔截器類:

public class ProcessInterceptor implements HandlerInterceptor {  @Override  public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {    httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");    httpServletResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");    httpServletResponse.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");    httpServletResponse.setHeader("X-Powered-By","Jetty");    String method= httpServletRequest.getMethod();    if (method.equals("OPTIONS")){      httpServletResponse.setStatus(200);      return false;    }    System.out.println(method);    return true;  }  @Override  public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {  }  @Override  public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {  }}

在spring-mvx.xml配置Spring 攔截器:

<mvc:interceptors>     <bean class="cn.tfzc.ssm.common.innterceptor.ProcessInterceptor"></bean>   </mvc:interceptors> 

至此,問題已經解決:

以上這篇完美解決axios跨域請求出錯的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 资中县| 洞头县| 九江县| 建水县| 瑞丽市| 郸城县| 松溪县| 西充县| 洞口县| 弥渡县| 岗巴县| 商洛市| 张北县| 大同县| 深水埗区| 万安县| 三亚市| 治县。| 常山县| 昌平区| 平舆县| 封开县| 三江| 安徽省| 绥阳县| 伊吾县| 新龙县| 庆城县| 台湾省| 中江县| 博罗县| 葫芦岛市| 平果县| 新田县| 紫云| 盈江县| 手游| 青海省| 资阳市| 武穴市| 揭西县|