Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery getJSON()不';尝试从本地主机上的java服务器获取数据时无法工作_Jquery_Ajax_Json_Jsonp_Httpserver - Fatal编程技术网

Jquery getJSON()不';尝试从本地主机上的java服务器获取数据时无法工作

Jquery getJSON()不';尝试从本地主机上的java服务器获取数据时无法工作,jquery,ajax,json,jsonp,httpserver,Jquery,Ajax,Json,Jsonp,Httpserver,昨天一整天我都在努力解决这个问题,但事实证明这对我来说是一个很大的挑战 我试图使用这个JS从我编写的java应用程序中获取信息 $(document).ready(function() { $.getJSON('http://localhost/custest?callback=?', function(json) { alert('OK'); $('.result').html(json.description); }); }); Java应用程序使用htt

昨天一整天我都在努力解决这个问题,但事实证明这对我来说是一个很大的挑战

我试图使用这个JS从我编写的java应用程序中获取信息

$(document).ready(function() {
 $.getJSON('http://localhost/custest?callback=?', function(json) {
   alert('OK');
     $('.result').html(json.description);
  });     
 });
Java应用程序使用httpServer,非常基本

当我使用Firefox访问页面“?”时,浏览器向我显示服务器正在向我发送json数据,并询问使用什么打开它,但当我使用上面的JS在网页上尝试时,它不起作用。getJSON调用未成功,警报(“ok”)根本不会弹出

如果将JS中的“?”替换为“?”,则一切正常

有趣的是,如果我从java服务器发送格式错误的JSON,Firebug会给出一个错误,并告诉我JSON中缺少了什么,这意味着浏览器正在接收JSON数据,但当我发送正确的JSON字符串时,什么都不会发生,没有错误,甚至alert()也不会打开

我正在添加标题,以防您认为这些标题可能相关

http://localhost/custest?callback=jsonp1274691110349

GET /custest?callback=jsonp1274691110349 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json

谢谢您的帮助。

您是否返回JSON而不是JSONP?试着省略“callback=?”部分,看看这是否有帮助。jQuery文档提供了关于JSON与JSONP的更多信息。
编辑:指向文档的链接也应该很有价值:

发送AJAX请求的页面是否与Java应用程序托管在同一台服务器上?如果不是这样,Java应用程序是否考虑了
回调=?
参数?这在Twitter上起作用的原因是它发送JSONP,即您的服务器需要像这样发送数据:

nameofcallback({ name: 'Smith' });

如果两者都托管在主机上,则不需要
回调
参数。

这就是问题所在,我没有发送JSONP,而是发送了JSON。现在工作。谢谢。只需单击此评论左侧的复选框,不会有任何伤害。;)现在可以工作了,非常感谢。问题是我发送的是JSON而不是JSONP。我确实需要这个脚本来跨域工作。