2016-02-24 68 views
0

我是一個新的jser,現在我在如何實現ajax POST和GET方面遇到困難。我可以通過谷歌郵遞員發送和獲取數據,如getpostAjax發佈並獲得跨站點

但我無法通過jquery ajax獲取數據,錯誤是'Uncaught SyntaxError:Unexpected token:'。它得到響應,但跳轉到錯誤功能。我找到很多解決方案,但是我可以實現POST和GET,而不必像Google郵遞員那樣更改後臺界面?

$(function(){ 
    $.ajax({ 
     url: "http://115.29.203.53:10013/students", 
     type: "GET", 
     async: false, 
     dataType: "jsonp", 
     success: function(json){ 
      console.log(json); 
     }, 
     error: function(){ 

     } 
    }); 
}); 

感謝您閱讀我的問題,請原諒我的英文破碎!

+0

1.網址傳回JSON,而不是一個JSONP響應,2它甚至沒有outputing有效的JSON –

+0

是否有可能獲得並通過接口上傳我的數據? @Patrick Evans – yzajoee

回答

0

你要做的是使用ajax進行跨域訪問。這不可能。可以通過設置

dataType : "JSONP" 

使跨域請求但JSONP格式是這樣使用functionName({ 「一」:1,B:{C:2})。這意味着JSON對象應該放在大括號()中,並帶有一些回調函數。因此,你正在

「未捕獲的SyntaxError:意外的令牌:」

爲了使跨域請求,一個需要添加HTTP頭('Access-Control-Allow-Origin: *')。然後,您將能夠使用dataType JSON進行跨域請求。

你的AJAX看起來像這樣。

$(function() { 
      $.ajax({ 
       url: "http://115.29.203.53:10013/students", 
       type: "GET", 
       async: false, 
       dataType: "JSON", 
       success: function (json) { 
        console.log(json); 
       }, 
       error: function() { 
        console.log("Error"); 
       }, 
       crossDomain: true 
      }); 
     }); 
+0

「JSONP格式就像({」a「:1,b:{c:2})。」 - 不,它不是。 JSONP的格式是「一個函數名稱」,然後是「(然後」JavaScript表達式「,然後是」)「。 – Quentin

+0

「爲了提出跨域請求,需要添加Http標頭」 - 如果您使用的是JSONP,則不需要。 (JSONP是一個骯髒的黑客,你應該使用CORS來代替,但是Access-Control的東西是適合你的)。 – Quentin