【发布时间】:2018-06-01 15:54:12
【问题描述】:
我遇到了一个奇怪的问题,我的 AJAX 请求某天无法正常工作。
我现在正在努力让它工作,但找不到问题。
这是我的 javascript: 基本上它真的很简单,它检索 ip 地址,然后将其 (POST) 发送到存储它的站点。
var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://dashboard.inofec.nl/ip', true); // 如果指定,responseType 必须是空字符串或“文本” xhr.responseType = '文本'; xhr.onload = 函数 () { 如果(xhr.readyState === xhr.DONE){ 如果(xhr.status === 200){ // console.log('R = ' + xhr.response); // console.log('RT= ' + xhr.responseText); 提示 = xhr.responseText; var formData = new FormData(); formData.append('ip', 提示); formData.append('uri', turl); formData.append('id', dataId); var request = new XMLHttpRequest(); request.open("POST", "https://dashboard.inofec.nl/visits"); request.send(formData); // console.log('IP = ' + tip); // console.log('URL = ' + turl); console.log('ID = ' + dataId); } 别的 { console.log('错误!'); } } } xhr.send(null);在服务器上我现在添加了这个以避免使用通配符
if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] != '') { header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); }我只用的时候
header('Access-Control-Allow-Origin: '); 我得到了错误: 跨域请求被阻止: CORS-header 'Access-Control-Allow-Origin' 不匹配', *')。
我得到了新的标题
CORS-header ‘Access-Control-Allow-Origin’ 不匹配 ‘http://www.inofec.nl, *’)。
但是当我检查标头时,我发现它以正确的标头响应。
访问控制允许标题
内容类型、授权、X-Requested-With 访问控制允许方法
获取、放置、发布、删除、选项 访问控制允许来源http://www.inofec.nl,*
【问题讨论】:
-
'访问控制允许来源:'*'
-
当我访问网站时,我得到“无法加载dashboard.inofec.nl/ip:'Access-Control-Allow-Origin' 标头包含多个值'inofec.nl, *',但只有一个是允许。因此,不允许访问 Origin 'inofec.nl'。"
-
所以,我已将标题更改为 header('Access-Control-Allow-Origin: *');它仍然无法正常工作,尽管现在的响应是 access-control-allow-origin *, *
标签: javascript php ajax