大家好日子!
在这里检查了很多类似问题的问题,但它们完全不同,没有任何效果。 问题的作者没有控制第三方资源有问题,在我的情况下我强行从服务器发送标题但是什么都没收到: No 'Access-Control-Allow-Origin' header is present on the requested resource error
我的CORS请求有问题。这是我的JS(使用jQuery):
$.ajax({
type: "POST",
url: "http://domain.com/module/api/storeData.php",
data: 'data='+results,
dataType: "html",
async: false,
crossDomain: true,
success: function(msg){
if(msg=="Ok")
{
$("#resultsPane").append ("Results successfully sent.");
} else {
$("#resultsPane").append (msg);
}
},
error: function (xhr, status, errorT)
{
$("#resultsPane").append ("AJAX error: "+status+": "+errorT);
}
});
非常开始PHP:
<?php
header ("Access-Control-Allow-Origin", "*");
但结果是(在控制台中):
jquery.js:10254 XMLHttpRequest无法加载http://domain.com/module/api/storeData.php。没有 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源“http://localhost:63342” 访问。
回复标题:
Connection:Keep-Alive
Content-Length:2
Content-Type:text/html
Date:Thu, 13 Oct 2016 13:19:23 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.4.7 (Ubuntu)
X-Powered-By:PHP/5.5.9-1ubuntu4.17
浏览器中的AJAX错误:
AJAX错误:错误:NetworkError:无法在“XMLHttpRequest”上执行“发送”:无法加载“http://domain.com/module/api/storeData.php”。
有人知道会出现什么问题吗?提前谢谢!
答案 0 :(得分:1)
与您期望将项目key, value
设置为单独参数的野外各种其他功能和方法不同,header不会。相反,它期望您要设置的标题行的整个字符串是第一个参数。
即
header ("Access-Control-Allow-Origin: *");
请注意,您应该考虑严格指定特定主机,而不是出于安全原因允许任何访问。