2013-11-14 59 views
0

我想对这个文件的请求:http://traitdesign.com/work/tattva/get.php 这是我的代码至今:jQuery的远程Ajax请求没有返回任何结果

function getRemote() { 
    return $.ajax({ 
     type: "GET", 
     url: 'http://traitdesign.com/work/tattva/get.php', 
     async: false, 
    }).responseText; 
} 
getRemote(); 

很好的问题是响应头为空,不会返回任何结果。任何帮助,将不胜感激。谢谢

+3

如果该域是比一个从它不会由于[同源策略]工作请求时不同(http://en.wiipedia.org/wiki/Same-origin_policy)。 –

+0

该域似乎不是CORS启用,所以你会失败相同的原点检查。 –

+0

尝试使用jsonp – Purus

回答

0

尝试用JSONP

function getRemote() { 
    return $.ajax({ 
     type: "GET", 
     url: 'http://traitdesign.com/work/tattva/get.php', 
     async: false, 
     dataType: "jsonp", 
    }); 
} 
getRemote(); 

“JSONP”:使用JSONP加载一个JSON块。添加额外的 “?callback =?”到您的URL的末尾来指定回调。除非缓存选项设置为true,否则通过向 URL附加查询字符串参数“_ = [TIMESTAMP]”来禁用 缓存。

+0

请注意,如果该网站不支持JSONP,则这不起作用。但这是正确的方法。 – j0hnstew

0

问题是'同源策略'。但你可以逃避它。但一些安全问题仍将存在。 请检查。 http://enable-cors.org/server_php.html

header("Access-Control-Allow-Origin: *"); 

将此行包含到您的get.php文件中。

0

我觉得你的情况最好是写你的服务器上一样简单的Ajax动作:

print(file_get_contents('http://traitdesign.com/work/tattva/get.php'); 

而且使Ajax调用你的新动作。它将通过你的服务器完成,所以额外的服务器工作将会完成,但是你不需要关心安全策略。

0

使用带回调的JSONP。一旦通话完成,也返回值。

function getRemote() { 
    var jqXHR = $.ajax({ 
    type: "GET", 
    dataType: "jsonp", 
    url: 'http://traitdesign.com/work/tattva/get.php', 
    async: false, 
    crossDomain: true 
    }); 

    return jqXHR.responseText; 
} 

getRemote();