現在、angularJS と CoffeeScript を使用して投稿リクエストを送信しようとしています。サンプル コードは次のとおりです。
login: (user, callback)=>
baseUrl = 'http://localhost:3000/api/v1/sessions'
@$http({
method: 'POST',
url: baseUrl,
data: user
}).success (result)->
callback(result)
しかし、私がそれを呼び出すと、POST リクエストの代わりに「OPTIONS」リクエストを送信するだけです。
リクエストの詳細は次のとおりです。
このメソッドにヘッダーを追加すると、
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 は私が望んでいません。
また、 data: JSON.stringify(user)によってリクエスト データを JSON に変更しようとしました が、まだ機能していません。
アップデート
皆さん、私はこの問題について別のスパイクを行いました。リクエストを送信するのはjqueryで、正常に動作しますが、リクエストデータが異なるという有線のものを見つけました。
Jクエリ
$.ajax({
type: "POST",
url: "http://localhost:3000/api/v1/sessions",
data: {
"user":{
"email":"wahxxx@gmail.com",
"password":"123456"
}
},
success: function(){
}
Jquery のスクリーンショット
角度
login: (user, callback)=>
baseUrl = 'http://localhost:3000/api/v1/sessions'
@$http({
method: 'POST',
url: baseUrl,
data: {
"user":{
"email":"wahxxx@gmail.com",
"password":"123456"
}
},
headers:
'Content-Type': 'application/x-www-form-urlencoded'
}).success (result)->
callback(result)
リクエストを送信できるようになりましたが、リクエストを実行しようとすると 401 になりました。
Angular のスクリーンショット
そのため、この問題は角度要求データの形式が原因である可能性があると思います。