2017-03-02 8 views
0

私は現在私が取り組んでいるウェブサイトを自分のグループに見せることができるように無料のホスティングサイトを使用しています。私が発生して見続ける問題は、コンソールにエラーがあるということです。CORSはHTMLまたはPHPファイルで変更されません

XMLHttpRequest cannot load http://error.hostinger.eu/ ?. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://sampleclickinggame.esy.es ' is therefore not allowed access.

URLは次のとおりです。http://sampleclickinggame.esy.es/index.html
URLは次のとおりです。http://sampleclickinggame.esy.es/index.php

は、ファイルの両方が、私がしようとしたエラー を生成しますそれのPHPメソッドを使用しても動作しません、私はまた、ajaxのバージョンを追加しましたが、それは何もしません。私は主にファイル形式をhtmlとして保存したいと思いますが、変更が必要な場合はそれを行います。

UPDATE

コード:それは私のホスティングサイトのエラーページにリダイレクトし続けると、エラーがどこから来ていることがありますいくつかの理由

<?php 
header("Access-Control-Allow-Origin: *"); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>IO Chat</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script> 
    <script src="jquery.js"></script> 
    <script> 
    $.ajax({ 
    url: "sampleclickinggame.esy.es", 
    type: method, 
    // This is the important part 
    xhrFields: { 
     withCredentials: true 
    }, 
    // This is the important part 
    data: data, 
    success: function (response) { 
     // handle the response 
    }, 
    error: function (xhr, status) { 
     // handle errors 
    } 
}); 
    </script> 
    <style> 
    body{ 
      margin-top: 30px; 
     } 
     #messageArea{ 
      display: none; 
     } 
    </style> 
</head> 
<body> 
    <div class="container"> 
     <div id="userFormArea" class="row"> 
      <div class="col-md-12"> 
       <form id="userForm"> 
        <div class="form-group"> 
         <label>Enter UserName</label> 
         <input class="form-control" id="username" /> 
         <br /> 
         <input type="submit" class="btn btn-primary" value="Login" /> 
        </div> 
       </form> 
      </div> 
     </div> 

     <div id="messageArea" class="row"> 
      <div class="col-md-4"> 
       <div class="well"> 
        <h3>Online Users</h3> 
        <ul class="list-group" id="users"></ul> 
       </div> 
      </div> 
      <div class="col-md-8"> 
       <div class="chat" id="chat"></div> 

       <form id="messageForm"> 
        <div class="form-group"> 
         <label>Enter Message</label> 
         <textarea class="form-control" id="message"></textarea> 
         <br /> 
         <input type="submit" class="btn btn-primary" value="Send Message" /> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 

    <script> 
     $(function(){ 
      var socket = io.connect(); 
      var $messageForm = $('#messageForm'); 
      var $message = $('#message'); 
      var $chat = $('#chat'); 
      var $messageArea = $('#messageArea'); 
      var $userFormArea = $('#userFormArea'); 
      var $userForm = $('#userForm'); 
      var $users = $('#users'); 
      var $username = $('#username'); 

      $messageForm.submit(function(e){ 
       e.preventDefault(); 
       socket.emit('send message', $message.val()); 
       $message.val(''); 
      }); 

      socket.on('new message', function(data){ 
       $chat.append('<div class="well"><strong>'+data.user+'</strong>: '+data.msg+'</div>'); 
      }); 

      $userForm.submit(function(e){ 
       e.preventDefault(); 
       socket.emit('new user', $username.val(), function(data){ 
        if(data){ 
         $userFormArea.hide(); 
         $messageArea.show(); 
        } 
       }); 
       $username.val(''); 
      }); 

      socket.on('get users', function(data){ 
       var html = ''; 
       for(var i = 0;i < data.length;i++){ 
        html += '<li class="list-group-item">'+data[i]+'</li>'; 
       } 
       $users.html(html); 
      }); 
     }); 
    </script> 
</body> 
</html> 

。そして、Uncaught SyntaxError: Unexpected token <の見た目からのエラーについては、それもエラーページのものです

これを修正する方法についてのご意見はありますか?

答えて

0

問題は、クロスオリジン要求を作成しようとしていて、呼び出し元のサーバーが、送信しているドメインからのCORS要求に応答するように構成されていないことです。

あなたのhtmlはhttp://sampleclickinggame.esy.es にありますが、http://error.hostinger.eu/へのサーバーコールをしようとしていますか?

ドメインがどのように異なるかを確認しますか?セキュリティ上の理由から、ブラウザはこれを許可していません。 CORS要求を見ると、まずサーバーにOPTIONS要求を送信して、サーバーが別のドメインからの要求を受け入れるかどうかを確認します。そうであれば、要求は通常どおり処理されます。あなたの場合は、サーバーが要求を受信するように構成されていないようです。http://sampleclickinggame.esy.es

解決策は、要求しているサーバーでCORSを有効にするか、同じサーバー/ドメイン上のすべてをホストする必要があります。

最近の考え: このネットワークコールを行うために使用されているJavaScriptを確認できますか?私は実際にはJavaScriptの要求に問題があるときに、ブラウザがこのCORSエラーを多くスローするのを見ました。あなたがJavaScriptエラーを起こす可能性があるということは、あなたのWebページ上のConsoleが次のように言っているということです。 "Uncaught SyntaxError:予期しないトークン<"

+0

問題は、そこにあるエラーは、なぜ私はlocalhost上でこのコードを実行したときにエラーがないことがうまく動作するのかわかりません。 –

+0

ユーザーがログインボタンを押した後に実行されるコードを投稿できますか? – victor

関連する問題