jquery远程ajax请求没有返回任何结果

时间:2013-11-14 14:26:45

标签: php ajax jquery

我正在尝试向此文件发出请求:http://traitdesign.com/work/tattva/get.php 这是我到目前为止的代码:

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

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

4 个答案:

答案 0 :(得分:0)

尝试使用JSONP

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

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

答案 1 :(得分:0)

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

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

将此行包含在get.php文件中。

答案 2 :(得分:0)

我认为您的最佳选择是在您的服务器上编写简单的ajax操作,如:

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

并对你的新动作进行ajax调用。它将通过您的服务器,因此将完成额外的服务器工作,但您不需要关心安全策略。

答案 3 :(得分: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();