2017-04-01 18 views
0

私はWindows 10の開発マシンでxamppを使用していますが、chromeを使用してjavascriptアプリケーションを起動すると、ブラウザはlocalhost:8080をルートディレクトリとして使用します。phpへのajax呼び出しが404エラーのミスマッチlocalhost

私のphp ajax呼び出しでは、完全なパスを使用して動作させる必要があります。私はjavascriptのルートがlocalhost:8080であるのに対し、AJAX呼び出しのためlocalhostを使用する必要が

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "http://localhost/get_user.php", 
     data: {email: $("#email").val()} 
    }); 

注:たとえば。私のPHPファイルはc:/xampp/htdocsにローカルに保存されています。

私のローカル開発マシンと本番ウェブサイトの両方で動作する短い形式のURLを使用したいと思います。

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "/get_user.php", 
     data: {email: $("#email").val()} 
    }); 

私の理解(と私はこれに新たなんだ)のような何かが、私は短い形式のURL /get_user.phpを使用する場合、システムは、クライアント側アプリケーション(すなわちhttp://localhost:8080/get_user.php)と同じルートを使用することです。しかし、私のajax呼び出しでは、完全修飾のhttp://localhost/get_user.phpしか働いていません。

短い形式/get_user.phpを使用しているとき、私は、次のエラーメッセージが表示されます。

http://localhost:8080/check_login.php?password=xxxxxxxxxx&email=drew%40aol.com 404をGET(見つかりません)

ので、クライアント側がlocalhost:8080を使用し、サーバ側はlocalhostを期待。私はこれがおそらくxampp設定の問題だと確信していますが、私自身で解決することはできませんでした。どんな洞察にも感謝します。

答えて

0

データ型をjsonpではなくjsonpに変更してください。私はあなたがクロスオリジンリソース共有の問題にぶつかっていると思います。基本的に許可問題。 localhostとlocalhost:8080は、ブラウザに関する限り、2つの異なるドメインです。あなたのコードがlocalhost:8080から実行され、/something.phpのような相対URLを与えると、あなたは同じドメインからそれを要求しているとみなします。 localhostはlocalhost:80に相当します。

関連する問題