【问题标题】:CORS header ‘Access-Control-Allow-Origin’ does not match ‘(null)’ on Ajax requestCORS 标头“Access-Control-Allow-Origin”与 Ajax 请求中的“(null)”不匹配
【发布时间】:2016-11-24 12:54:06
【问题描述】:

但浏览器出现同样的错误

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 Cors 用于ChromeCorsE ad-ons for Firefox

所有 API 从同一个域到我的本地主机服务器都可以正常工作,但我们的项目 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)
    {}
});

但同样的错误...

我检查了很多问题并在此处提出问题后应用了所有内容。所以需要帮助或我在这里缺少的任何需要信息。

【问题讨论】:

    标签: javascript php ajax api cross-platform


    【解决方案1】:

    在您的 .htaccess 中添加以下代码

    <ifModule mod_headers.c>
        Header set Access-Control-Allow-Origin: *
    </ifModule>
    

    并查看此链接的答案 http://enable-cors.org/server_apache.html

    【讨论】:

    • 你确定我的其他 api 是否在这个域中工作,但是对于这个特定的子域 api 没有工作,那么我需要更新 .htaccess 文件?
    • 当前的.htaccess文件Header是什么?
    • 检查服务器中的 .conf 文件,例如 httpd.conf 或 apache.conf。那里的“标题”是什么?或者有什么特别提到任何带有 Header 的 URL?它应该是 Header 设置 Access-Control-Allow-Origin ""
    • 我需要检查一下,我会尽快更新你。
    • 已经为跨平台 * 添加了这一行,并且实际上 API 用于邮递员扩展
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 2018-04-12
    • 2020-09-21
    • 2019-06-19
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多