Jquery的Ajax与CORS无法正常工作

时间:2016-04-23 12:06:35

标签: php jquery ajax cors

我很难在两个域之间尝试使用简单的jQuery Ajax。

当我尝试在网站A中执行Ajax时,在开发人员工具的网络部分中,我得到了“404未找到”#39;在与Site B相关的GET方法中。 我还在控制台中看到此消息:" ...缺少CORS标题' Access-Control-Allow-Origin'"

在"网站A"我是这样的:

<script>
    var xhr = new XMLHttpRequest();
    xhr.open("get", "http://domainB.com/resource.php", true);
    xhr.onload = function () {
        console.log('Connected!');
    };
    xhr.send(null);

    $.ajax({
        url: 'http://domainB.com/resource.php',
    }).done(function ($result) {
        //somecode
    });
</script>

在资源的服务器上(&#34;网站B&#34;):

<?php    
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST');
    header("Access-Control-Allow-Headers: X-Requested-With");
    //somecode

这是我第一次使用CORS,我真的不知道出了什么问题。

谢谢

2 个答案:

答案 0 :(得分:0)

在php页面的开头添加此代码

http://domainB.com/resource.php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-  Size, 
X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");

答案 1 :(得分:0)

最后我在这篇文章中得到了答案: http://www.html5rocks.com/en/tutorials/cors/。 似乎问题出现在我的Ajax代码中,我刚刚添加了一些属性,现在它的工作正常。 这就是我的Ajax现在的样子:

        $.ajax({
            type: 'GET',
            url: url,
            cache: false,
            contentType: 'text/plain',
            xhrFields: {
                withCredentials: false
            },
        }).done(function ($result) {
            //somecode
        });