我正面临这个问题 - >请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:63342”访问。响应具有HTTP状态代码403。 但我只需要在客户端解决此问题。我无法编码服务器端。限制只是javascript,如果可能的话,然后是ajax。 任何人都可以帮忙。
答案 0 :(得分:0)
您可以遵循的解决方案很少 - Chrome浏览器中的第一个解决方案禁用安全性[不建议]
打开终端。只需输入此命令即可。
alias chrome =“open / Applications / Google \ Chrome.app / --args --disable-web-security”
重新启动Chrome。如果成功禁用了chrome安全性,则应在chrome视图的顶部看到黄色警告栏。
第二个解决方案
将dataType参数修改为dataType:'jsonp'
$.ajax({
url: 'your domain url',
data: myData,
type: 'GET',
crossDomain: true,
dataType: 'jsonp',
success: function() { alert("Success"); },
error: function() { alert('Failed!'); },
beforeSend: setHeader
});
第3个解决方案 - 在服务器端将标题keys/values
放入选项方法响应中
void handleRequest(Request request, Response response) {
if(request.method == "OPTIONS") {
response.setHeader("Access-Control-Allow- Origin","Your_Domain")
response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type");
}
}
第四个解决方案如果setHeader
不起作用,那么您可以尝试使用addHeader
使用addHeader
- > response.addHeader("Access-Control-Allow-Origin", "*");
答案 1 :(得分:0)
尝试将header('Access-Control-Allow-Origin: *');
放入您的php文件服务器端代码,如下所示:
<?php
$host = "localhost";
$username= "root";
$pass = "12354";
$dbname = "taxi_booking";
$conn = mysql_connect($host, $username, $pass);
mysql_select_db($dbname, $conn);
mysql_query("SET NAMES 'utf8'");
header('Access-Control-Allow-Origin: *');
?>