0

我整个星期都在处理一个问题,但在任何地方都找不到答案。

这就是问题:

XMLHttpRequest 无法加载http://www.websiteA.com/process.php。Access-Control-Allow-Origin 不允许来源http://clientwebsi.te 。

我有一个 Javascript 文件,位于网站 A 的服务器上。客户端可以在该网站上加载 JS 文件。

在服务器 A 上还有一个 process.php,它将信息放入服务器 A 的数据库中。

我现在正在使用这段代码:

var dataText = 'page=' + top.location.host;
$.ajax({
    type: "POST",                 
    url: "process.php",         
    data: dataText,              
    error: function(request,error){
            alert(error);
        },
    success: function(request) {
        alert(request.length);
    }
});

此代码在 localhost 上完美运行,但在我使用服务器 A 和客户端服务器(跨域)时无法运行

这是在线代码:

$.ajax({
    type: "POST",                 
    url: "http://www.serverA.com/process.php",         
    dataType: "json",
    data: dataText,              
    error: function(request,error){
            alert(error);
        },
    success: function(request) {
        alert(request.length);
    }
});
4

2 回答 2

0
$.ajax({
    type: "POST",                 
    url: "http://www.serverA.com/process.php",         
    dataType: "jsonp",
    data: data,  
    crossDomain: true,            
    error: function(request,error){
            alert(error);
        },
    success: function(request) {
        alert(request.length);
    }
于 2012-06-15T14:05:33.890 回答
-1

唯一的方法是发出 jsonp GET 请求。这很容易,但您不能使用其他请求类型。

$.ajax({
    dataType: 'jsonp',
    url: 'http://domain.de/jsonp.php',
    success: function(data, textStatus, jqXHR),
    error: function(jqXHR, textStatus, errorThrown)
});
于 2012-06-15T14:48:37.927 回答