2013-06-19 3 views
2

Мне нужно получить конкретные данные, используя метод AngularJS $ http, вызывающий Parse RESTFUL API, единственный способ, которым позволяет Parse, это отправить «-data-urlencode, где = {"storeId": 2} "в curl call.

curl -X GET -H "X-Parse-Application-Id:ApplicationId" -H "X-Parse-REST-API-Key: ApiKey" -G --data-urlencode 'where={"storeId":2}' https://api.parse.com/1/classes/Stores/

посмотреть здесь: https://parse.com/docs/rest#queries-arrays

Я в состоянии вернуть результат в формате JSON с помощью терминала, но не с $ HTTP(). Кто-нибудь знает, как я могу ввести «--data-urlencode where = {" storeId ": 2}" в методы AngularJS $ http() или $ resource()?

посмотреть здесь: http://docs.angularjs.org/api/ng.$http

ответ

5

Глядя ссылку питон разбора API, я предполагаю, что where={"storeId":2} может быть добавлен в качестве параметра запроса (I не может проверить это без доступа к parse api). Из справки:

params = urllib.urlencode({"where":json.dumps({ 
    "arrayKey": 2 
})}) 

В AngularJS вы можете добавить параметры запроса с param ключа в config объекта $http «s:

var req = $http({ 
    params: { 
     where: {storeId: 2}, 
    }, 
    headers: { 
     'X-Parse-Application-Id': 'ApplicationID', 
     'X-Parse-REST-API-Key': 'ApiKey' 
    } 
    //... other params, like URL 
}); 

Значение params.where будет включено в строку JSON автоматически. Я не уверен, что параметры запроса получают URL-код по умолчанию, если нет, JSON кодирует их вручную и применяет функцию encodeURIComponent.

+0

Огромное спасибо kmoerman. Это решает мою проблему! –

+0

добро пожаловать. – kmoerman

Смежные вопросы