ajax請求遇到的問題

  工做有一段時間了,總結一下和後臺交互遇到的問題。javascript

使用jquery,post請求data:那裏要使用data:JSON.stringify(data)

$.ajax({
    type:"POST",
    async : false,
    url:"../../gzq/circle/deleteTeam",
    dataType:"json",
    contentType:"application/json; charset=utf-8",
    data:JSON.stringify(c),
    success:function(data){
        console.log(data);
    },
    error:function(error){
        console.log(error);
    }
});

  緣由:事實上,假如不用JSON.stringify(data), 會變成字符串拼接,'name=vinxent&age=21',有點和get方法相像。若使用JSON.stringify(data),則會傳輸json對象--「{name;'vinxent', age:21}」
  因此,在通常場景來講,get方法無需JSON.stringify,post方法須要。java

angularJS請求得一些總結

$q延時加載的使用(angularJS中的promise)

.service('findXfzzShopInfo', ['$http', '$q', function($http, $q) {
    this.get = function(shopClassId, val) {
        var def = $q.defer();
        $http({
            url: '../../shop/findXfzzShopInfo?shopClassId=' + shopClassId + '&val=' + val,
            method: 'GET',
            cache: true
        }).then(function(resp) {
            def.resolve(resp.data);
        }).catch(function(err) {
            def.reject(err.data);
        });
        return def.promise;
    };
}])

  因爲要進行環境的判斷,將請求封裝爲服務,使用了$q的defer延時加載。jquery

cache: true配置

  當請求內容長時間沒有變化時,咱們能夠使用這個配置來緩存請求,減小服務器的壓力,提升頁面的速度,當頁面關閉的時候能夠清空這個緩存。並且cahe後面也能夠配置時間。ajax

當請求爲200的時候,你發現走的是失敗的函數

  這裏要講的不是配置responseType,而是我在get請求的時候後臺返回一個列表,當有值的時候你會發現徹底沒有問題,沒有值得時候後臺就什麼都沒返回,而你的responseType是json,這時候就進去了失敗的函數,因此仍是後臺坑了你,和後臺商量下空的時候也返回你一個對象就能夠了。json

若是有不正確的地方歡迎指正!

相關文章
相關標籤/搜索