В настоящее время я использую angularJS и CoffeeScript, чтобы попытаться отправить почтовый запрос, и мой пример кода:
login: (user, callback)=>
baseUrl = 'http://localhost:3000/api/v1/sessions'
@$http({
method: 'POST',
url: baseUrl,
data: user
}).success (result)->
callback(result)
Но когда я его вызываю, он просто отправляет запрос «OPTIONS» вместо запроса POST.
И детали запроса: Если я добавлю заголовок к этому методу,
login: (user, callback)=>
baseUrl = 'http://localhost:3000/api/v1/sessions'
@$http({
method: 'POST',
url: baseUrl,
data: user,
headers:
'Content-Type': 'application/json'
}).success (result)->
callback(result)
Это по-прежнему не работает, но если я изменю заголовки на 'Content-Type': 'application/x-www-form-urlencoded', тогда он сможет отправлять почтовые запросы.
Но запрос Content-type это не не хочу.
Я также пытаюсь изменить данные запроса на JSON с помощью: data: JSON.stringify(user), но все еще не работает.
ОБНОВЛЕНИЯ
Ребят, я сделал очередной спайк по этому вопросу. То есть я jquery для отправки запроса, и он отлично работает, но я нашел проводную вещь, которая заключается в том, что у них разные данные запроса.
JQuery
$.ajax({
type: "POST",
url: "http://localhost:3000/api/v1/sessions",
data: {
"user":{
"email":"[email protected]",
"password":"123456"
}
},
success: function(){
}
Скриншот для Jquery
Угловой
login: (user, callback)=>
baseUrl = 'http://localhost:3000/api/v1/sessions'
@$http({
method: 'POST',
url: baseUrl,
data: {
"user":{
"email":"[email protected]",
"password":"123456"
}
},
headers:
'Content-Type': 'application/x-www-form-urlencoded'
}).success (result)->
callback(result)
Теперь он может отправить запрос, но я только что получил 401 при попытке сделать запрос.
Скриншот для Angular
Поэтому я думаю, что проблема может быть связана с форматом данных углового запроса.