2015-07-22 1 views
1

У меня есть метод GET, но по какой-то причине он посылает зашифрованы params

var request = function (apiMethod, apiResponse) { 

      var deferred = $q.defer(); 

      var apiPath = getApiPath(); 

      apiPath = $rootScope.ROOT_URL + apiPath; 

      var config = { 
       method: 'GET', 
       url: apiPath + apiMethod, 
       params: '[email protected], timestamp_start=1432801800, timestamp_end=1432803600, organizer_email= [email protected], cloudinary_rules=scale, meeting_name=123', 
       //data: apiResponse, 
       //headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
       //withCredentials: true, 
       timeout: canceler.promise 
      }; 
      $http.get(config).success(function (data) { 

       $rootScope.showLoader = false; 

       if (data.message === undefined) { 
        deferred.resolve(data); 
       } else { 
        deferred.reject(data); 
       } 

      }).error(function (data, status, headers, config) { 
       $rootScope.showLoader = false; 
       deferred.reject(data); 
      }); 
      return deferred.promise; 
     }; 

Однако я получаю запрос как:

https://myapp.me/api.php/get_gadget_notes?0=e&1=m&10=a&100=d&101=a&102=c&103=o&104=r&105=p&[email protected]&107=g&108=m&109=a&11=c&110=i&111=l&112=.&113=c&114=o&115=m&116=,&117=+&118=c&119=l&12=o&120=o&121=u&122=d&123=i&124=n&125=a&126=r&127=y&128=&129=r&13=r&130=u&131=l&132=e&133=s&134=%3D&135=s&136=c&137=a&138=l&139=e&14=p&140=,&141=+&142=m&143=e&144=e&145=t&146=i&147=n&148=g&149=&[email protected]&150=n&151=a&152=m&153=e&154=%3D&155=1&156=2&157=3&16=g&17=m&18=a&19=i&2=a&20=l&21=.&22=c&23=o&24=m&25=,&26=+&27=t&28=i&29=m&3=i&30=e&31=s&32=t&33=a&34=m&35=p&36=&37=s&38=t&39=a&4=l&40=r&41=t&42=%3D&43=1&44=4&45=3&46=2&47=8&48=0&49=1&5=%3D&50=8&51=0&52=0&53=,&54=+&55=t&56=i&57=m&58=e&59=s&6=l&60=t&61=a&62=m&63=p&64=&65=e&66=n&67=d&68=%3D&69=1&7=a&70=4&71=3&72=2&73=8&74=0&75=3&76=6&77=0&78=0&79=,&8=n&80=+&81=o&82=r&83=g&84=a&85=n&86=i&87=z&88=e&89=r&9=d&90=_&91=e&92=m&93=a&94=i&95=l&96=%3D&97=l&98=a&99=n

Как отправить запрос GET надлежащего?

ответ

2

Вы должны попытаться дать ему объект вместо строки:

var config = { 
      method: 'GET', 
      url: apiPath + apiMethod, 
      params: { 
       email:"[email protected]", 
       timestamp_start:1432801800, 
       timestamp_end:1432803600, 
       [etc...] 
      } 
      //data: apiResponse, 
      //headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
      //withCredentials: true, 
      timeout: canceler.promise 
     }; 

Это было, вероятно, пытается URL закодировать всю строку в качестве одного параметра, но не уверен.

Надеюсь, это помогло.

EDIT: Ха-ха просто перечитайте запрос на получение.

Это было фактически взятие строки в виде массива параметров. поэтому он посылал каждую букву в виде одного параметра (смотрите порядок параметров: 0: e - 1: m - 2: a (ema ...) [и т. д.].

+0

tnx, good catch – snaggs