2016-05-12 2 views
0

:私のサーバー上でローカル環境から自分のフォーム情報を投稿できないのはなぜですか?私は(私は一口を使用しています)次のコードは、ブラウザ同期を通じて私はlocalhost上で私のサーバー上で動作しますが、いない理由を理解しようとしています

$.ajax({ 
      url: 'https://www.someserver.com/Form.aspx', 
      type: 'POST', 
      dataType: 'html', 
      data: { 
      'email': email 
      'key': key 
      }, 
      success: function(data) { 
      console.log(data); 
      }, 
      error: function(error) { 
      console.log(error); 
      } 
     }); 

、私は成功応答を取得します。 (ローカルホスト上で実行されている:3000)私のローカル環境では、私はすぐに次のエラーを取得:最初は

Cannot POST/

を、私は私がターゲットURLがhttpsであるという事実かもしれないと思ったし、私は自分のローカル環境を提供しました。通常のhttpを介して。しかし、ブラウザ同期プロセスをhttpsで実行するように切り替えると、同じエラーが発生します。

私のローカル環境から自分のフォーム情報を投稿できない理由を知っている人はいますか?

答えて

1

ajax呼び出しのURLは、2台のコンピュータで異なります。相対URLを使用するか、javascriptが正しいURLを計算するのに役立つメカニズムをコードする必要があります(CURRENTルートディレクトリに基づいており、2つのコンピュータ間で変更可能です)。

つまり、あなたの応答のための

window.location = window.siteInfo.root + "someOtherpage.html" 
+0

おかげで私は通常

window.siteInfo = {root: "/somepath/again/"} 

すなわち

、ページにアップ高電流ルートディレクトリを注入し、その後、私はJavaScriptで、私は、正しいURLを取得するために追加します。私はパスの問題についてのあなたの点を見ていますが、私はコード内に絶対URLを使用しています。答えに記述した問題を緩和するべきではありませんか? – Moose

+1

HTMLがサーバーxyz.comから提供されている場合、構成なしでabc.comサーバーにAJAX呼び出しを行うことはできません。デフォルトの結果は、ajax呼び出しが失敗することです。あなたは絶対絶対URLを望んでいないでしょう。それは私の応答があなたが一定の相対URL( "../../page.aspx"かもしれない)を必要としているか、それを計算すると言う理由です。 –

+1

これはかなり一般的な問題です。 –

関連する問題