ajax请求'访问控制允许来源'

时间:2013-12-12 11:41:34

标签: ajax http-headers xmlhttprequest cross-domain crossdomain-request.js

我面临着一个跨领域的问题。我用google搜索并找到了一些解决方案,但在这种情况下它们不起作用。我想知道为什么。

我在apache tomcat服务器上托管我的应用程序。在应用程序方面,我使用XMLHttpRequest进行请求,但我得到“XMLHttpRequest无法加载http://localhost:8888/systeminfo。请求的资源上没有'Access-Control-Allow-Origin'标头。来源'http://localhost:8080 “因此不允许访问。”

这是Application js文件

function testget()
{
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            alert(xhr.responseText);
        }
    }
    alert('Getting data');
    xhr.open('GET', 'http://localhost:8888/systeminfo', true);
    xhr.setRequestHeader('Access-Control-Allow-Origin','*');
    xhr.setRequestHeader('Access-Control-Allow-Methods','GET');

    xhr.send();
}

我在local_host:8888上运行节点js服务器,并在访问url时发送json响应,如'http://localhost:8888/systeminfo'。

这是我正在形成并从服务器发送的json响应

function GetSystemInfo(express)
{
    express.namespace('/systeminfo', function(){
        express.get('/', function(req, res){
            var SYSTEM_INFO = 1;
            var jsonres = '{\"event\" : [{ \"apiID\" : \"{0}\" }],\"data\":[{ \"manufacturerName\" : \"MNAME\",\"serialNo\" : \"123456\",}] }'.format(SYSTEM_INFO);
            res.setHeader('Access-Control-Allow-Origin','*');
            res.send(jsonres);
            res.end();
        });
    });

}

请帮助。

此致

Techtotie。

0 个答案:

没有答案