当服务器#2上的页面“[domain2] /unrelated.php”上的用户点击a时,我想使用jQuery在服务器#1上运行带有数据的异步帖子“[domain1] /first.php”链接到服务器#2上的“[domain2] /second.php?var1=data1?var2=data2”。我不想等“[domain1] /first.php”完成或返回任何回复。
“[domain2] /second.php”处理数据并回显页面。
“阻止跨源请求:同源策略不允许 在[domain1] /first.php上读取远程资源。这可以修复 通过将资源移动到同一域或启用CORS。“
我已经尝试将其添加到“[domain1] /first.php”的顶部:
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
//exit(0);
}
“[domain2] /unrelated.php”上的jQuery AJAX调用是:
$.ajax({
url: '[domain1]/first.php',
type: 'POST',
data: parameters
});
用于测试的所有三个浏览器都是最新的。使用的jQuery是1.7.2。
我可以检测到Firefox并且只使它使用同步帖子,但考虑到它在其他两个浏览器中异步工作,它似乎不太令人满意。
有任何想法或建议吗?
我可以发布请求和响应标头的样子,但我现在无法这样做,我将在稍后编辑它们,我道歉。 通过搜索,这似乎主要是服务器#2从服务器#1的原始帖子发回的标题的问题,所以我假设发布这些标题对解决这种情况至关重要? 也许我必须取消注释注释“// exit(0);”?
谢谢你的时间!