我的网络服务返回一个JSON对象,如下所示
["abc","xyz","option_3"]
即,当我将此地址放入chrome浏览器中时,http://localhost:8088/rest/getOptions
我可以到达上面。
我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
url="http://localhost:8088/rest/getOptions";
var ajaxResult = null;
function getData(yt_url){
$.ajax
({
type: "GET",
url: yt_url,
dataType:"json",
async: false,
success: function(response){
ajaxResult = response;
}
});
}
getData(url);
alert(ajaxResult);
</script>
</head>
<body>
</body>
</html>
我总是null
在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。
我也试过
var obj = JSON.parse(ajaxResult);
alert(obj);
我又得到了空。
我已经看过Ajax要求的json响应和类似的问题。请查看我的JSON有点不同,所以这些解决方案不适用于我的情况,或者我没有遵循它们。
我是AJAX和Java脚本的新手,请指教。
编辑: 添加提供此rest / getOptions端点的JERSEY Web服务代码
@GET
@Path("getOptions")
@Produces(MediaType.APPLICATION_JSON)
public List<String> getOptionsJson() {
//build alloptions List<String>
return alloptions ;
}
更新资料
您编辑了问题;您不能使用,dataType: 'json'
因为跨域问题只能通过在同一域上使用代理或通过CORS来解决。
当你使用时dataType: 'jsonp'
你不能使用async: false
;
这是因为它并没有真正使用,XMLHttpRequest
而是使用<script>
标记来使其跨域使用。我相信jQuery只会忽略该async
设置而不会发出警告。
因此,alert()
将始终为空,您应将其移至成功回调中。
为了支持JSONP,您的Web服务必须将返回的数据包装到由callback
GET参数标识的函数调用中,例如
callback([1, 2, 3])
如前所述,如果您的Web服务不支持此功能,则需要使用CORS,例如添加以下响应标头:
Access-Control-Allow-Origin: *
API响应一个JSON对象,该对象具有一个对象数组,如,其中包含我们需要处理的数据。问题是数组有1.000个对象,endpoint响应很慢,所以流式传输需要几秒钟才能完成,而我们的“博客”编程模型使用Apache HttpClient来消耗endpoint,杰克逊来序列化响应,我们等待为了获得完整的正文来解析保存数组的所有对象,而不是在每个元素到来时处理它们,节省了内存使用的时间,因为一旦处理了一
问题内容: 我正在尝试使用正则表达式搜索网页,但出现以下错误: TypeError:无法在类似字节的对象上使用字符串模式 我知道为什么urllib.request.urlopen()返回一个字节流,因此,至少在我看来,re不知道要使用的编码。在这种情况下我该怎么办?有没有办法在urlrequest中指定编码方法,或者我需要自己重新编码字符串?如果是这样,我想做什么,我假设我应该从标题信息中读取编码
问题内容: 是否可以在PHP中处理来自AJAX请求的响应?我不是一个真正的JS开发人员,所以我正在用这个开发人员。 我有点黑了: }); 该功能似乎可以正常运行,它会向我发出有关正确数据的警报。 我需要能够将此输出给用户,以便可读。我发现很多指南都描述了替换数据,但就目前而言,直到选择child_id之前,没有数据。.然后我希望它以可读的方式显示上述数据。 我不知道如何开始使用视图文件(php)中
我在调用AJAX请求后出现此错误。控件正在命中服务器端,所有进程都正常工作。但是,在调用控制器代码之前,我遇到了这个错误,并在这里绊倒了自己。 Jsp Ajax呼叫 控制器 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequest方法不支持警告:请求方法'POST'不支
问题内容: 我无法从下面的代码行 jQuery.support.cors = true 打印成功 。 。包括这行 jQuery.support.cors = true; 将给出警告信息。那么,如何在不失去功能的情况下避免这种情况呢?我的主要目标是调用一个休息的Web服务,该服务返回JSON数据,而我必须利用JSON数据。请帮助我如何做到这一点?请提供工作样本 问题答案: 您可能会错过添加 // G
我无法使用jQuery行打印下面代码中的success。支持cors=true;。包括jQuery行。支持cors=真;将发出警告信息。那么,如何在不丢失功能的情况下避免这种情况呢?我的主要目标是调用一个返回JSON数据的RESTWeb服务,我必须利用JSON数据。请帮助我如何做到这一点。请提供工作样品