2013-11-14 133 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();