我有一个带有PHP的NGINX服务器(假设主机名为http://myserver.com)。我有一个PHP脚本,可以从本地主机上的网页通过XHR访问。我将其用作类似于freegeoip.net的GeoIP服务器。
我正在尝试将XHR锁定到特定域。
这是我的配置设置:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param GEOIP_COUNTRY_CODE $geoip2_data_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip2_data_country_name;
fastcgi_param GEOIP_COUNTRY_GEONAME_ID $geoip2_data_country_geoname_id;
fastcgi_param GEOIP_CITY_NAME $geoip2_data_city_name;
fastcgi_param GEOIP_CITY_GEONAME_ID $geoip2_data_city_geoname_id;
fastcgi_param GEOIP_CONTINENT_CODE $geoip2_data_city_continent_code;
fastcgi_param GEOIP_CONTINENT_GEONAME_ID $geoip2_data_city_continent_geoname_id;
fastcgi_param GEOIP_LATITUDE $geoip2_data_city_location_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip2_data_city_location_longitude;
fastcgi_param GEOIP_TIME_ZONE $geoip2_data_city_location_timezone;
fastcgi_param GEOIP_ISP $geoip2_data_city_traits_isp;
fastcgi_param GEOIP_IP_ADDRESS $geoip2_data_city_traits_ip_address;
set $cors "";
if ($http_origin ~* 'https?://(www\.domain1\.com|www\.domain2\.com)')
{
set $cors "true";
}
if ($cors = 'true')
{
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,Pragma,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';
}
if ($request_method = 'OPTIONS')
{
return 204;
}
}
我遇到的问题是,当我执行XHR请求时,出现以下错误:
XMLHttpRequest cannot load http://myserver.com/. The 'Access-Control-Allow- Origin' header contains multiple values '*, http://localhost', but only one is allowed. Origin 'http://localhost' is therefore not allowed access.
add_header 'Access-Control-Allow-Origin' "$http_origin";
在配置文件中,我只有一个调用,那么为什么会有多个值?有没有办法可以禁用第一个电话,即*
?
1.)让应用程序动态批准并添加响应头。
$allowed_domains = ['http://allowed.com','http://another_allowed.com'];
function add_cors_header() {
if (in_array($_SERVER['http_origin'], $allowed_domains)) {
header('Access-Control-Allow-Origin', $_SERVER['http_origin']);
}
}
2.)或在启用了Lua的情况下安装Nginx的OpenResty版本,并执行相同的操作,但在Nginx conf文件中使用Lua。
问题内容: 我正在尝试将获取请求发送到api,就像它是登录网址 我在控制台中收到此错误 XMLHttpRequest无法加载http://demo.software.travel/gptp/api/authorization?apiKey= *&alias = &login = &password = *。“ Access-Control-Allow- Origin”标头包含多个值“ http:/
我试图将get请求发送到api,就像它是一个登录url一样 请求标题:
https://laundrylocker-eg.com/wp-json/wp/v2/delivery-locations JSON中的响应没有出错,所以从Ionic应用程序中,我试图调用这个api来回调这个数据,但面对这个CORS问题,并试图修复它,没有什么能像在chrome中禁用CORS和在开发阶段使用插件为所有域启用CORS那样工作 CORS插件IMG 请求URL:https://laund
Response.AddHeader(“Access-Control-Allow-Origin”,“*”)是如何实现的;行设置多个标题时,包括,但没有当我删除它?
我得到这些错误在浏览器 “响应必须包含AMP Access Control Allow Source Origin标头” 和 表单提交失败:错误:响应必须包含AMP Access Control Allow Source Origin标头" php HTML 我如何编辑它,以避免这些错误?
从http://localhost:8000/api/objectiveshttp://localhost:4200访问XMLHttpRequest已被CORS策略阻止:访问-控制-允许-起源头包含多个值 '*, *', 但只允许一个。