CORS标头'Access-Control-Allow-Origin'与Ajax请求

时间:2016-11-24 12:54:07

标签: javascript php ajax api cross-platform

但是浏览器中的错误

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://abc-test123.com/login. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘(null)’).

我的浏览器支持Cors

extenstion of CorsChrome

我有一个CorsE ad-ons for Firefox

所有API都可以从同一个域完美地运行到我的localhost服务器,但我们的项目API中的一个不能再使用了

我们正在开发 Slim Framework 这里是PHP文件代码

$corsOptions = array(
    "origin" => "*",
    "exposeHeaders" => array("X-My-Custom-Header", "X-Another-Custom-Header"),
    "maxAge" => 1728000,
    "allowCredentials" => True,
    "allowMethods" => array(" PUT, GET, POST, DELETE, OPTIONS"),
    "allowHeaders" => array("X-PINGOTHER")
);
$cors = new \CorsSlim\CorsSlim($corsOptions);          
$app->add($cors);

我正在调用ajax函数(之前正在使用)

    var dataString = {
        username: "test",
        password: "test123"
    }
    $.ajax({
        method: "POST",
        url: varURI, //My url variable
        data: dataString,
        crossDomain: true,
        success: function(data)
        {
            if(data.status == "success")
            {
                alert("Success");
            }
            else
            {
                alert("Failure");
            }
        }
    });

我在API错误

之后尝试了以下新功能
//(1)
$.support.cors = true;

//(2)
$.ajax({
    method: "POST",
    url: varURI, //My url variable
    data: dataString,
    dataType: "jsonp",
    async: false, //and true too
    crossDomain: true,
    success: function(data)
    {}
});

但同样的错误......

我已经检查了很多问题,然后在这里提出问题后应用了所有问题。所以需要帮助或我在这里缺少的任何要求信息。

1 个答案:

答案 0 :(得分:0)

在.htaccess

中添加以下代码
<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>

还可以通过此链接查看答案 http://enable-cors.org/server_apache.html