Access-Control-Allow-Origin不从PHP

时间:2016-10-13 13:33:49

标签: javascript php ajax http-headers cors

大家好日子!

在这里检查了很多类似问题的问题,但它们完全不同,没有任何效果。 问题的作者没有控制第三方资源有问题,在我的情况下我强行从服务器发送标题但是什么都没收到: 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”。

有人知道会出现什么问题吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

与您期望将项目key, value设置为单独参数的野外各种其他功能和方法不同,header不会。相反,它期望您要设置的标题行的整个字符串是第一个参数。

header ("Access-Control-Allow-Origin: *"); 

请注意,您应该考虑严格指定特定主机,而不是出于安全原因允许任何访问。