2015-06-07 2 views
0

Я пытаюсь опубликовать нового пользователя на своих серверах, используя прямоугольник. Сообщение не работает, потому что тело сообщения всегда пустое.Rectangular post body empty

var userData = data.logged_in_user; 
var userDetails = { 
    id: userData.pk, 
    username: userData.username, 
    pic: userData.profile_pic_url, 
    full_name: userData.full_name 
}; 

Restangular.all('users').post(userDetails) 
.then(function() { 
    console.log('Success') 
}) 
.catch(function() { 
    console.log('Error') 
}); 

У меня нет перехватчиков в моем коде, но когда я добавить одну и выйти из значения, значение элемента заполняется UserDetails.

Это запрос HTTP:

OPTIONS /api/users HTTP/1.1 
Host: myserver.com 
Accept-Language: en-us 
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F69 (2019885536) 
Accept: */* 
Referer: http://192.168.1.67:8100/?restart=250098 
Access-Control-Request-Method: POST 
Connection: keep-alive 
Access-Control-Request-Headers: accept, origin, content-type 
Content-Length: 0 
Origin: http://192.168.1.67:8100 
Accept-Encoding: gzip, deflate 

ответ

1

возможно, что у вас есть проблемы с тем же ограничением домена? ваш запрос не является POST, а запросом OPTIONS. Обычно браузер использует этот запрос для проверки разрешений и другой информации с сервера.

Обычно, когда вы работаете в браузере, вы можете сделать запрос только в том же домене ваших страниц (файл: /// в случае кордовы). Есть способы преодолеть это ограничение, CORS - одна из тем. Они представляют собой только заголовки, отправленные с сервера, что говорит браузеру доверять ему, и браузер использует запрос OPTIONS для загрузки этих заголовков (подробнее здесь http://en.wikipedia.org/wiki/Cross-origin_resource_sharing).

При работе внутри Кордовы вы можете указать, чтобы отключить то же ограничение домена, используя простой тег в вашем config.xml

<access origin="*" /> 

Но если вы Tyring вашего кода в браузер или вы не имеете указав этот тег, кордова просматривает заголовки с этим запросом OPTION.

Надеюсь, это поможет

+1

Спасибо, ваш ответ привел меня на этот пост. http://blog.ionic.io/handling-cors-issues-in-ionic/. Это объясняет странное поведение. –