が、私は自分のアプリケーションに反応し、要求をプレゼントしようとフェニックスのバージョン1.3を使用していることはできません。フェニックス+リアクトはHTTPGET要求
HTTPGETがあるhttpGet('/api/v1/users')
.then(function (data) {
console.log("http get works!!!!");
})
.catch(function (error) {
console.log("nope doesn't work");
});
:
export function httpGet(url) {
return fetch(url, {
headers: buildHeaders(),
})
.then(parseJSON);
}
parseJSONを:
export function parseJSON(response) {
return response.json();
}
buildHeaders():
const defaultHeaders = {
Accept: 'application/json',
'Content-Type': 'application/json',
};
function buildHeaders() {
const authToken = localStorage.getItem('phoenixAuthToken');
return { ...defaultHeaders, Authorization: authToken };
そして、これは私のルーターです:
defmodule App.Web.Router do
use App.Web, :router
pipeline :browser do
plug :accepts, ["html", "json"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
plug Guardian.Plug.VerifyHeader
plug Guardian.Plug.LoadResource
end
scope "/", App.Web do
pipe_through :browser # Use the default browser stack
get "/*path", PageController, :index
end
scope "/api", App.Web do
pipe_through :api
scope "/v1" do
post "/users", UserController, :create
get "/users", UserController, :index
end
end
私はHTTPGET要求が失敗したエラーを取得しておきます。だから、私の質問は私のルータに間違って何ですか?投稿、削除要求が機能します。私はルーターと何か関係があることを信じていますが、正確な問題を見つけることはできません。どんな助けにも感謝!
編集:私は取得、サーバーからの応答:
[info] GET /api/v1/current_user
[debug] Processing with App.Web.PageController.index/2
Parameters: %{"path" => ["api", "v1", "users"]}
Pipelines: [:browser]
[info] Sent 200 in 260µs
とGoogleのDevツール:
リクエストはサーバーに送信されますか?サーバーログに何かが記録されていますか?ブラウザのコンソールにエラーはありますか? Chrome Dev Toolsの[ネットワーク]タブから送信された正確なリクエストを確認できます。 – Dogbert
ちょっと@Dogbert、私は応答を追加しました。それはすべてが正しいことを返しますが、応答はHTML型です、私はここでJSONでなければならないと思いますか? – Ilya
ああ、最初の 'scope do ... end'を2番目のものの下に移動してみてください。あなたのワイルドカードルートがすべてをキャッチしているようです。 – Dogbert