欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 請求后臺數(shù)據(jù)的實(shí)例代碼

 更新時(shí)間:2017年06月22日 10:05:32   作者:VergilOpen  
本篇文章主要介紹了vue 請求后臺數(shù)據(jù)的實(shí)例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧、

需要引用vue-resource

安裝請參考https://github.com/pagekit/vue-resource官方文檔

在入口函數(shù)中加入

import VueResource from 'vue-resource'
Vue.use(VueResource);

在package.json文件中加入

 "dependencies": {
  "vue": "^2.2.6",
  "vue-resource":"^1.2.1"
 },

請求如下

mounted: function () {
    // GET /someUrl
    this.$http.get('http://localhost:8088/test').then(response => {
       console.log(response.data);
      // get body data
      // this.someData = response.body;

    }, response => {
      console.log("error");
    });
  },

注意

1.在請求接口數(shù)據(jù)時(shí),涉及到跨域請求

出現(xiàn)下面錯誤:

復(fù)制代碼 代碼如下:

XMLHttpRequest cannot load http://localhost:8088/test. No ‘Access-Control-Allow-Origin' header is present on the requested resource. Origin ‘http://localhost:8080' is therefore not allowed access.

解決辦法:在接口中設(shè)置

response.setHeader("Access-Control-Allow-Origin", "*");

2.使用jsonp請求

但是出現(xiàn)如下錯誤

Uncaught SyntaxError: Unexpected token

查看請求,數(shù)據(jù)已返回,未解決.

提交表單

 <div id="app-7">
    <form @submit.prevent="submit">
      <div class="field">
        姓名:
        <input type="text"
            v-model="user.username">
      </div>


      <div class="field">
        密碼:
        <input type="text"
            v-model="user.password">
      </div>


      <input type="submit"
          value="提交">
      </form>
  </div>

methods: {
    submit: function() {
     var formData = JSON.stringify(this.user); // 這里才是你的表單數(shù)據(jù)

     this.$http.post('http://localhost:8088/post', formData).then((response) => {
       // success callback
       console.log(response.data);
     }, (response) => {
        console.log("error");
       // error callback
     });
    }
  },

提交restful接口出現(xiàn)跨域請求的問題

查閱資料得知,

當(dāng)contentType設(shè)置為三個常用的格式以外的格式,如“application/json”時(shí),會先發(fā)送一個試探的OPTIONS類型的請求給服務(wù)端。在這時(shí),單純的在業(yè)務(wù)接口response添加Access-Control-Allow-Origin 由于還沒有走到所以不會起作用。

解決方案:

在服務(wù)端增加一個攔截器

用于處理所有請求并加上允許跨域的頭

public class CommonInterceptor implements HandlerInterceptor {

  private List<String> excludedUrls;

  public List<String> getExcludedUrls() {
    return excludedUrls;
  }

  public void setExcludedUrls(List<String> excludedUrls) {
    this.excludedUrls = excludedUrls;
  }

  /**
   *
   * 在業(yè)務(wù)處理器處理請求之前被調(diào)用 如果返回false
   * 從當(dāng)前的攔截器往回執(zhí)行所有攔截器的afterCompletion(),
   * 再退出攔截器鏈, 如果返回true 執(zhí)行下一個攔截器,
   * 直到所有的攔截器都執(zhí)行完畢 再執(zhí)行被攔截的Controller
   * 然后進(jìn)入攔截器鏈,
   * 從最后一個攔截器往回執(zhí)行所有的postHandle()
   * 接著再從最后一個攔截器往回執(zhí)行所有的afterCompletion()
   *
   * @param request
   *
   * @param response
   */
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
               Object handler) throws Exception {
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods", "*");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers",
        "Origin, X-Requested-With, Content-Type, Accept");
    return true;
  }

  // 在業(yè)務(wù)處理器處理請求執(zhí)行完成后,生成視圖之前執(zhí)行的動作
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
              ModelAndView modelAndView) throws Exception {

  }

  /**
   *
   * 在DispatcherServlet完全處理完請求后被調(diào)用
   * 當(dāng)有攔截器拋出異常時(shí),
   * 會從當(dāng)前攔截器往回執(zhí)行所有的攔截器的afterCompletion()
   *
   * @param request
   *
   * @param response
   *
   * @param handler
   *
   */
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
                Object handler, Exception ex) throws Exception {

  }
}

spring resultful無法像在jsp提交表單一樣處理數(shù)據(jù)必須加上@RequestBody,可以直接json轉(zhuǎn)換object,但是對與沒有bean的表單數(shù)據(jù),建議轉(zhuǎn)換為map對象,類似@RequestBody Map、

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論