2016-02-24 38 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