不能在html或php文件中更改CORS
我正在使用一个免费的托管网站,这样我就可以向我的团队展示我目前正在使用的网站。我一直看到的一个问题是,控制台中出现了以下错误: XMLHttpRequest无法加载?。不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,源“”不是 允许访问 URL是:不能在html或php文件中更改CORS,php,jquery,ajax,node.js,cors,Php,Jquery,Ajax,Node.js,Cors,我正在使用一个免费的托管网站,这样我就可以向我的团队展示我目前正在使用的网站。我一直看到的一个问题是,控制台中出现了以下错误: XMLHttpRequest无法加载?。不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,源“”不是 允许访问 URL是: 网址是: 这两个文件都会产生错误 我尝试过使用它的PHP方法,但不起作用,我还添加了一个ajax版本,但没有任何作用。我主要想保持文件格式为html,但如果我需要更改它,我会的 更新 守则: &l
网址是: 这两个文件都会产生错误 我尝试过使用它的PHP方法,但不起作用,我还添加了一个ajax版本,但没有任何作用。我主要想保持文件格式为html,但如果我需要更改它,我会的 更新 守则:
<?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>
IO聊天
$.ajax({
url:“sampleclickinggame.esy.es”,
类型:方法,
//这是重要的部分
xhrFields:{
证书:正确
},
//这是重要的部分
数据:数据,
成功:功能(响应){
//处理响应
},
错误:函数(xhr,状态){
//处理错误
}
});
身体{
边缘顶部:30px;
}
#消息区{
显示:无;
}
输入用户名
在线用户
输入消息
$(函数(){
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(函数(e){
e、 预防默认值();
emit('send message',$message.val());
$message.val(“”);
});
socket.on('new message',函数(数据){
$chat.append(“”+data.user+”:“+data.msg+”);
});
$userForm.submit(函数(e){
e、 预防默认值();
emit('new user',$username.val(),函数(数据){
如果(数据){
$userFormArea.hide();
$messageArea.show();
}
});
$username.val(“”);
});
socket.on('get users',函数(数据){
var html='';
对于(变量i=0;i'+数据[i]+';
}
$users.html(html);
});
});
出于某种原因,它一直重定向到我的托管站点的错误页面,这就是错误的来源。至于
Uncaught SyntaxError:Unexpected token,您的问题是您正在尝试发出跨源请求,并且您正在调用的服务器没有配置为响应您正在发送的域的CORS请求
您的html位于
但是您正在尝试对进行服务器调用
看看这些域有什么不同?出于安全原因,浏览器不允许这样做。当它看到CORS请求时,它首先向服务器发送一个选项请求,以查看服务器是否会接受来自不同域的请求。如果会,则请求将正常进行。在您的情况下,服务器似乎未配置为接收来自的请求
您的解决方案是在您向其发出请求的服务器上启用CORS,或者您必须在同一服务器/域上托管所有内容
最后一个想法:
我可以看到用于进行此网络调用的javascript吗?我看到浏览器经常抛出这个CORS错误,而实际上这是javascript请求的问题。有一件事让我觉得你可能有javascript错误,那就是你网页上的控制台说:“Uncaught SyntaxError:意外令牌问题是,我从未尝试访问该服务器。。。这里有个错误,我不知道为什么我在本地主机上运行这个代码时,它工作正常,没有错误。你能发布在用户按下登录按钮后运行的代码吗?