2017-05-31 35 views
-1

私はこれらの指示に非常によく似クラフトCMSサイト上のいくつかの簡単なAJAXのページ遷移、使用しています:https://designbycosmic.com/journal/craft-cms-ajax-page-transitions-with-history-pushstateAJAXポストのURLを返す400(不正な要求)

私のコードの基本的な構造はこれです:

$.ajax({ 
    type: 'POST', 
    url: href, 
    data: {}, 
    success: function(result){ 
    // hide old content, load new content, fade in new content 
    }, 
    error: function(){ 
    console.log("ajax error"); 
    } 
}); 

「href」は、読み込む新しいページへのリンクです。

私はいつも400(Bad Request)エラーを受けています。

私はまったく同じホスティング環境で同じような方法でこれと全く同じ方法を使用しています。これはうまくいきます。なぜこれが違うのかについて私の頭を叩いています。

「データ」が正しくフォーマットされていない場合は他のすべての回答があるようですが、URLを読み込んでいて他のデータがない場合は問題がありません。

この場合、400エラーが発生する原因は何ですか?それでもhttp://mearch.nz/

非常に不完全で、開発中の:


UPDATE

OKはここに調査をさらに支援するために親切である人のためのライブサイトです。 [ホーム]、[プロジェクト]、[プロジェクト]インデックスからリンクされたプロジェクト詳細ページの間をナビゲートすることができます。ローディングインジケータがそこにくっついてしまい、AJAXが失敗して新しいページが到着しないことがわかります。

これらのページをリロードすると、正常に動作します。 URLに間違いはありません。何らかの理由でAJAX POSTの適切なデータとして受け入れられないだけです。

今すぐ比較のために、ここで同じWebホスト上の別のWebサイトが同じAJAX機能を使用して、だ、と同じCMS、それが正常に動作します:http://benek.nz/

+1

あなたはPOSTリクエストをしてもデータを送信しないのですか?レスポンスに他の情報が含まれているかどうかを確認するためにChrome DevToolsをチェックしましたか? –

+1

400レスポンスを返す理由は、**サーバ**はリクエストが悪い(だから悪いリクエスト) - クライアントサイドのコードは、サーバが応答している理由を伝えることはめったにありません。サーバを修正する必要があります。あるいは、サーバを制御しない場合は、サーバが期待していることを理解する必要があります。 、あなたのリクエストをサーバrequiに合わせるRements –

+0

@JaromandaXこれは私にとってとてもイライラしている理由です。同じサーバー環境にあり、ほとんど同じコードで動作する別のサイトと同じです。だから私が知る限り、これはサーバーが期待するものでなければなりません。 –

答えて

1

ます。http:// mearch.nz/projects/ ありません参照 http:// mearch.nz/js/init.js。しかし、init.jsにはjavascriptコードが含まれているのでロードする必要があります! 対照的に、http://benek.nzは参照init.jsとなります。

http:// mearch.nzでminmeeを使用しているようですので、問題をデバッグするのは少し難しいです。

ご質問にCSRF -issueと表示されているようです。これは通常、javascriptがWebサーバーに要求を送信する場合に発生します。これは、javascriptの送信元とは異なります。

これは、私はあなたの問題を再現するためにやったことです:http://mearch.nz/projects/

  • に移動

    • はGoogle Chromeでリンクを
    • を "プロジェクト" をクリックします。コンソールウィンドウには、「書き込み...不正な要求 『と『CSRFトークンが検証できなかった「私は、サーバーにもHTML containinテキストを送った参照応答の下でネットワーク]タブでGoogle Chromeで
    • 』400(不正なリクエスト)。』
  • +0

    この新しいサイトではinit.jsに問題はありません。これはminimee圧縮ファイルの一部です。 CSRFの問題が問題でした! Craftがデフォルトを変更したように見えます - CSRFは以前は無効にされていましたが、現在は有効になっているCMSインストールファイルの新しいアップデートになっています。つまり、なぜこのサイトで他のサイトと違って動作していたのかを説明します。お手伝いいただきありがとうございます。その手がかりが分かりました。 –

    関連する問題