2017-07-15 78 views
0

代码是:获取SyntaxError:missing;阿贾克斯在声明之前的JQuery呼叫

var rootData = null; 

$.ajax({ 
url: 'http://localhost:12345/request', 
data: rootData, 
type: 'GET', 
crossDomain: true, 
dataType: 'jsonp', 
error: function() { alert('Failed!'); }, 
success: function() { alert('OK'); } 
}); 

我有: “语法错误:缺少;语句之前” 我不明白为什么!

+0

我想在其他地方的错误.post全功能代码 – prasanth

+0

那段代码看起来不错。 – lilezek

+0

这可能是返回的代码有问题。使用浏览器的开发人员控制台查看GET请求返回的内容;这可能不是一个适当的JSONP响应。 – Pointy

回答

0

当您没有正确地转义字符串并且JavaScript引擎已经期待字符串结束时,可能会发生此错误。

检查rootData,它可能会导致此错误。 (我假设rootData在发送请求之前设置为null然后用一些数据填充)

0

OK我找到了解决办法:

一个REST服务器在端口12345(Tomcat)的 和Spring MVC的服务器在端口8080上(Tomcat)的

从MVC请求是

var treeData = null; 
$.ajax({ 
    url: 'http://localhost:12345/request', 
    data: treeData, 
    type: 'GET', 
    async:false, 
    crossDomain: true, 
    dataType: 'json', 
    error: function() { alert('Failed!'); }, 
    success: function(treeData) { .... 

,其余服务器必须只是通过添加@CrossOrigin到它接受跨域请求:

@CrossOrigin(origins = "http://localhost:8080") 
@RequestMapping(value = "/request", produces = { MediaType.APPLICATION_JSON_VALUE}, method = RequestMethod.GET) 
public String request() { ....